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

728x90
반응형

(1) 내 코드

function solution(s) {
    let len = s.length / 2;
    return s.length % 2 === 0
        ? s.split('')
             .splice(len - 1, 2)
             .join('')
        : s.split('').splice(len, 1).join('');
}

▶input : "abcde" / output ="c" (글자수 홀수) && input:"qwer" / output= "we" (글자수 짝수)

(1) 문자열 길이의 가운데 = s.length / 2;

(2) 문자열 > 배열 변환 > splice로 요소 제거 (반환값: 제거된 요소) > 다시 문자열로 변환

(3) 짝수인 경우,

- 길이가 4인경우 중앙은 2 => qwer (e가 선택되서) -1로 인덱스 위치 변경: len-1  

- 2개 반환해야해서 2개 요소 제거

(4) 홀수인 경우,

- 가운데 길이에서 1개 요소 제거

 

(2) 다른사람풀이

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

▶ 문자열의 substr 사용 + Math.ceil사용 (매우 간결하고 좋음! mdn에서는 substr을 쓰지말란건가..?싶지만 배워봄)

▶ str.substring(1번째인자,2번째인자)

(1) 1번째인자 : 길이/2 -1

(2) 2번째인자 : 길이가 짝수홀수 구분하여 자를 개수 선택

str.substr(start[, length])

 

 

String.prototype.substr() - JavaScript | MDN

substr() 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.

developer.mozilla.org

 

끝.

반응형