가수면

[Javascript] 가운데 글자 가져오기 본문

CS/코딩 테스트

[Javascript] 가운데 글자 가져오기

니비앙 2022. 11. 19. 09:43

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항
  • s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
"abcde" "c"
"qwer" "we"

 


function solution(s) {
    var answer = '';
    if (s.length % 2 === 0) {
        return answer = s[1] + s[2]
    } else {
        return answer = s[2];
    }
}

코드 실행하고 통과 뜨길래 '쉽네!' 하고 제출 눌렀더니 틀렸댄다.

맞는데 왜 틀리죠?

예시는 예시일 뿐, 예시를 만드는 게 아니라 규칙을 만들어야한다는 걸 그제야 깨달았다...

 

 

정답

function solution(s) {
    var answer = '';
    if (s.length % 2 === 0) {
        return answer = s[s.length / 2 - 1] + s[s.length / 2]
    } else {
        return answer = s[Math.floor(s.length / 2)];
    }
}

글자 위치를 찾는 방법으로 길이 수를 나눈다는 발상을 한다는 게 쉽지 않았다.

 

그런데 더 기발한 방식이 있었다.

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

그저 감탄

 

 

 

 

Comments