문제
단어 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]를 해주었다.
문자열에 바로 인덱싱이 되는지 몰랐고
홀수일 경우 바로 하나만 인덱싱하면되어서 훨씬 간편해보였다.
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 약수의 개수와 덧셈 (0) | 2023.12.22 |
---|---|
[코딩테스트] 수박수박수박수박수박수? (0) | 2023.12.15 |
[코딩테스트] 제일 작은 수 제거하기 (0) | 2023.12.13 |
[코딩테스트] 없는 숫자 더하기 (0) | 2023.12.12 |
[코딩테스트] 핸드폰 번호 가리기 (1) | 2023.12.07 |