⛵ 항해 중/2주차 알고리즘(프로그래머스)

1일차 → 가운데 글자 가져오기(Math.round(), Math.floor())

은돌1113 2021. 11. 8. 11:30
728x90

배정 받은 문제를 생각 보다 빨리 풀어서 다른 분들의 문제로 풀어보기로 했습니다.

 

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.

단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.

 

제한사항

s는 길이가 1 이상, 100 이하인 스트링입니다.

 

내가 푼 문제 풀이

 

Math.round() 함수는 소수점 이하를 반올림 한다.

function solution(s) {

    let answer = '';
    
    let length = Math.round(s.length / 2)
    // 가운데 숫자를 구하기 위해서
    // s.length를 2로 나눠서 가운데 숫자를 구한다.
    // 소숫점으로 나올 경우를 대비해
    // Math.round() 함수를 사용하여 반올림 해준다.
    
    if(length >= 1 && length <= 100){
        if(s.length%2 == 0){
        // s의 길이가 짝수라면
          answer = s[length-1]+s[length]
          // 두 글자를 출력 해야 하기 때문에
          // s[length-1]+s[length]를 해준다.
        }else{ // s.length%2 == 1
        // s의 길이가 홀수라면
          answer = s[length-1]
          // 한 글자만 출력하면 되기 때문에
          // s[length-1]을 해준다.

          // -1을 쓰는 이유는 index를 셀 때는 0부터 시작하기 때문이다.
        }
    }else{
        return
    }
    
    return answer;
}

 

Math.floor() 함수는 소수점 이하를 버린다.

function solution(s) {

    let answer = '';
    
    let length = Math.floor(s.length / 2)
    // 가운데 숫자를 구하기 위해서
    // s.length를 2로 나눠서 가운데 숫자를 구한다.
    // 소숫점으로 나올 경우를 대비해
    // Math.floor() 함수를 사용하여 소수점 이하를 버린다.
    
    if(length >= 1 && length <= 100){
        if(s.length%2 == 0){
        // s의 길이가 짝수라면
          answer = s[length-1]+s[length]
          // 두 글자를 출력 해야 하기 때문에
          // s[length-1]+s[length]를 해준다.
        }else{ // s.length%2 == 1
        // s의 길이가 홀수라면
          answer = s[length]
          // 한 글자만 출력하면 되기 때문에
          // s[length]을 해준다.

          // -1을 쓰는 이유는 index를 셀 때는 0부터 시작하기 때문이다.
        }
    }else{
        return
    }
    
    return answer;
}

 

https://programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

 

728x90