function solution(s) {
let len = s.length;
if(len % 2 === 0){
let index = len / 2;
let ans = `${s[index - 1]}${s[index]}`;
return ans;
} else {
let index = Math.floor(len / 2);
let ans = `${s[index]}`;
return ans;
}
}
직관적으로 풀었다.
문자열의 길이를 파악해서 홀수인지 짝수인지 판별하고,
짝수라면 길이 / 2번 인덱스와 그 앞 글자를 이어서 출력한다.
홀수라면 길이 / 2가 정수가 아니므로, Math.floor를 통해 정수로 변환 후 사용한다.
1.
입력 데이터 "abcde"
문자열 길이 5 : 홀수
5 / 2 = 2.5 => Math.floor(2.5) => 2
문자열[index] = 문자열[2] = "c"
그대로 "c" 출력
2.
입력 데이터 "abcd"
문자열 길이 4 : 짝수
4 / 2 = 2
문자열[index] = 문자열[2] = "c"
문자열[index - 1] = 문자열[1] = "b"
두 개를 이어서 "bc"로 출력
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
substr 메서드를 사용하여 굉장히 간단하게 푸셨다.
위 예시에 적용해서 읽어보면 쉽다.
문자열의 길이가 4(짝수)라면 1번 인덱스부터 시작해서, 2개의 문자를 잘라내서 보여준다.
문자열의 길이가 5(홀수)라면 2번 인덱스부터 시작해서, 1개의 문자를 잘라내서 보여준다.