최대 1 분 소요

[알고리즘] 프로그래머스_가운데 글자 가져오기

문제

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

입출력 예시

| s | return | | ———— | ———— | |”abcde”|”c”| |”qwer”|”we”|

문제풀이

function solution(s) {
  return (s.length%2 === 0 ? s.slice((s.length/2)-1, s.length/2+1) : s.charAt((Math.round(s.length/2))-1)) 
}

삼항연산자를 사용해 조건문을 단순화 시켰고, 짝수일 때 slice로 가운데 2자리 수를 반환한다.
그 외의 조건(홀수)일 때에는 반올림을 해주는 메소드(Math.round)와 단 한개의 문자만 내보내는 charAt을 사용하여 값을 반환했다.

이 외의 사람들 풀이

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

str.substr? substr()메소드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환한다. ex. const str = “Mozilla”; console.log(str.substr(1,2)); // “oz”

디폴트로 수를 나눈 것의 올림을 한 값을 s.substr()의 매개변수의 첫번째 수로 넣고, 짝수일 때 에는 2개의 숫자를 아닐 때에는 1개의 숫자를 반환하도록 만들었다.

댓글남기기