[프로그래머스] level1-가운데 글자 가져오기

JIEUN YANG·2022년 9월 21일

가운데에 위치한 스트링 값이 무엇인지 구하는 문제로,
스트링의 길이가 짝수냐 홀수냐에 따라 반환하는 글자의 수가 달라진다.

먼저, 주어진 함수를 살펴보면 아래와 같다.
핵심은 s.length 를 2로 나눈 나머지가 0인지 1인지를 기준으로 잡아야한다.

즉 s.length % 2 === 0 ?

function solution(s) {
    var answer = '';
    return answer;
}

나는 이렇게 작성하였다.

function solution(s) {
    var answer = '';
    if(s.length % 2 !== 0) {
        const q = parseInt(s.length/2)
        answer = s[q]
    }else {
        const q = s.length/2
        const middle1 = s[q-1]
        const middle2 = s[q]
        answer = middle1 + middle2
    }
    return answer;
}
  • 나머지가 0이 아닌 조건에서는 s가 홀수이기 때문에 정 가운데 스트링 값을 반환해야 한다. 이것은 s.length / 2의 몫에 해당하는 인덱스가 답이 된다.
  • 반대로 나머지가 0인 조건에서는 짝수이기 때문에 가운데 '두글자'를 반환해야 한다. s.length /2 의 몫에 해당하는 인덱스와 그 이전 인덱스가 답이 된다.

A simplest Code.

fution(s) {
    return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}

한줄로 구현한 다른 사람의 코드.
감탄했다..!

  • substr()
  • Math.ceil()

두 메서드에 대해 깊게 공부하여 정리해봐야겠다.

profile
violet's development note

0개의 댓글