프로그래머스 문제 풀이 가운데 글자 가져오기 (JS)

문제분석

단어 s의 가운데 글자를 반환하는 함수 만들기

제한조건

단어의 길이가 짝수라면 가운데 두 글자를 반환해야 함
s는 길이가 1 이상, 100이하인 문자열 데이터

문제풀이

앞에서 푼 3진법 뒤집기 문제 Spread Operator와 filter를 활용해 풀어보았다.

function solution(s) {
    return [...s]
        .filter((data, index) => {
            let temp = parseInt(s.length / 2, 10);
            if (s.length % 2 === 0) {
                if (parseInt(index, 10) === (temp - 1) || parseInt(index, 10) === temp) {
                    return true;
                }
            } else {
                if (parseInt(index, 10) === temp) {
                    return true;
                }
            }
        })
        .join('');
}

다른풀이

string.substr()을 자주 사용하진 않지만 이렇게 응용하면 참 유용한 것 같다.

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

binarySearch처럼 mid값을 주고, 원소가 문자열이라는 것을 활용한 풀이

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



좋은 웹페이지 즐겨찾기