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

박기영·2022년 9월 12일
0

프로그래머스

목록 보기
8/159

solution

function solution(s) {
    let len = s.length;
    
    if(len % 2 === 0){
        let index = len / 2;
        
        let ans = `${s[index - 1]}${s[index]}`;
            
        return ans;
    } else {
        let index = Math.floor(len / 2);
        
        let ans = `${s[index]}`;
        
        return ans;
    }
}

직관적으로 풀었다.
문자열의 길이를 파악해서 홀수인지 짝수인지 판별하고,
짝수라면 길이 / 2번 인덱스와 그 앞 글자를 이어서 출력한다.
홀수라면 길이 / 2가 정수가 아니므로, Math.floor를 통해 정수로 변환 후 사용한다.

1.
입력 데이터 "abcde"
문자열 길이 5 : 홀수
5 / 2 = 2.5 => Math.floor(2.5) => 2

문자열[index] = 문자열[2] = "c"

그대로 "c" 출력

2.
입력 데이터 "abcd"
문자열 길이 4 : 짝수
4 / 2 = 2

문자열[index] = 문자열[2] = "c"
문자열[index - 1] = 문자열[1] = "b"

두 개를 이어서 "bc"로 출력

다른 분 풀이

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

substr 메서드를 사용하여 굉장히 간단하게 푸셨다.
위 예시에 적용해서 읽어보면 쉽다.
문자열의 길이가 4(짝수)라면 1번 인덱스부터 시작해서, 2개의 문자를 잘라내서 보여준다.
문자열의 길이가 5(홀수)라면 2번 인덱스부터 시작해서, 1개의 문자를 잘라내서 보여준다.

참고 자료

참고 자료 1

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글