문제

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

제한사항

입출력 예

내 답변

[고려사항]

function solution(s) {    
    const middleLength = Math.round(s.length / 2);
    return s.length % 2 ? s[middleLength] : s[middleLength] + s[middleLength + 1];
}

간단하게 표현하자면 이렇게 표현했으나,

function solution(s) {    
    const middleLength = Math.round(s.length / 2);
    const beginIdx = middleLength - 1;
    const endIdx = s.length % 2 ? middleLength : middleLength + 1;

    return s.slice(beginIdx, endIdx);
}

가독성을 위해서는 이런 방식이 낫지 않을까 싶다.

다른 사람 답변

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