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

JIEUN YANG·2022년 9월 21일
0

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

먼저, 주어진 함수를 살펴보면 아래와 같다.
핵심은 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개의 댓글

관련 채용 정보