[프로그래머스 Lv1] 가운데 글자 가져오기 - (Javascript)

eeeyooon·2023년 12월 19일
0

가운데 글자 가져오기

문제 링크

📩 문제 설명

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

제한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

sreturn
"abcde""c"
"qwer""we"

제출 답안

function solution(s) {
    const centerNum = ~~(s.length/2);
    return s.length%2 !==0 ? s.slice(centerNum, centerNum+1) : s.slice(centerNum-1,centerNum+1)
}

답안 설명

가운데 글자를 가져오기 위한 인덱스를 구하기 위해 문자열의 길이를 2로 나누고, 정수가 아닐 경우의 처리를 위해 ~~연산자를 추가하였다. 그리고 문자열의 길이가 홀수 일때는 문자열에서 가운데 인덱스에 해당하는 요소 하나만을, 문자열이 짝수일 땐 가운데 인덱스에 해당하는 요소 두개를 반환하도록 코드를 작성했다.


다른 사람의 풀이


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

나와 같은 방식으로 생각을 했는데 리턴을 할 때 굳이 slice()를 사용하지 않고 문자열에 해당 인덱스의 요소를 바로 리턴하였다. 문자열도 s[idx]와 같이 접근해서 반환할 수 있다는 걸 잊고 있었다. ㅎㅎ. 또 비슷한 방식으로는 어차피 해당 문자열의 가운데 인덱스를 구했기 때문에 substr이나 charAt을 사용해서 그 인덱스에 해당하는 요소를 리턴하는 풀이가 많이 보인다.


0개의 댓글