코딩테스트

[코딩테스트] 가운데 글자 가져오기

이경욱 2023. 12. 14. 12:18

문제

단어 s의 가운데 글자를

 

반환하는 함수, solution을 만들어보세요.

 

단어의 길이가 짝수라면

 

가운데 두 글자를 반환하면 됩니다.

 

 

 

 

 

해결

function solution (s) {
    const i = s.length / 2
    return s.length % 2 === 0
    ? s.slice(i-1, i+1)
    : s.substring(Math.floor(i), Math.ceil(i))
}

 

s 의 length를 2로 나누어 몫이 0이 된다면 짝수이기 때문에

 

삼항연산자를 통해서

 

true일 경우 slice 인덱싱을 통해 2글자가 나오도록 +1, -1을 해주었고

 

false일 경우 length / 2는 소수점이 나오기 때문에 반내림 반올림을 통해

 

인덱싱을 해주었다.

 

 

 

 

 

다른 사람의 풀이

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


mid라는 변수에 Math.floor 를 통해 length를 반내림한 값을 선언해주었다.

아래 retrun문에서 s.length가 2로 나누었을 때 1이 남으면 (=홀수이면)

 

삼항연산자를 통해

 

true는 s[mid]

 

false는 s[mid-1] + s[mid]를 해주었다.

 

 

 

문자열에 바로 인덱싱이 되는지 몰랐고

 

홀수일 경우 바로 하나만 인덱싱하면되어서 훨씬 간편해보였다.