문제분석
단어 s의 가운데 글자를 반환하는 함수 만들기
제한조건
단어의 길이가 짝수라면 가운데 두 글자를 반환해야 함 s는 길이가 1 이상, 100이하인 문자열 데이터
문제풀이
앞에서 푼 3진법 뒤집기 문제 Spread Operator와 filter를 활용해 풀어보았다.
function solution(s) { return [...s] .filter((data, index) => { let temp = parseInt(s.length / 2, 10); if (s.length % 2 === 0) { if (parseInt(index, 10) === (temp - 1) || parseInt(index, 10) === temp) { return true; } } else { if (parseInt(index, 10) === temp) { return true; } } }) .join(''); }
다른풀이
string.substr()을 자주 사용하진 않지만 이렇게 응용하면 참 유용한 것 같다.
function solution(s) { return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1); }
binarySearch처럼 mid값을 주고, 원소가 문자열이라는 것을 활용한 풀이
function solution(s) { const mid = Math.floor(s.length/2); return s.length %2 === 1 ? s[mid] : s[mid-1]+s[mid]; }