
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.
단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
- s는 길이가 1 이상, 100이하인 스트링입니다.
// Math.floor
function solution(s) {
let str = '';
if(s.length % 2 == 0) {
str = s[s.length / 2 - 1] + s[s.length / 2];
} else {
str = s[Math.floor(s.length/2)];
}
return str;
}
🍒 참고하면 좋을 자료 🍒
📘 JavaScript Math.floor() Mozila (클릭)
📘 JavaScript Math Mozila (클릭)
📘 JavaScript 반올림(round), 올림(ceil), 내림(floor) 설명 (클릭)
📘 다른 분의 Math.floor() 풀이 (클릭)
// concat
function solution(s) {
let str = '';
if(s.length % 2 === 0) {
str = str.concat(s[s.length/2 - 1]);
str = str.concat(s[s.length/2]);
} else {
str = str.concat(s[Math.floor(s.length/2)]);
}
return str;
}
🍒 참고하면 좋을 자료 🍒
📘 JavaScript .concat() Mozila (클릭)
📘 .concat()을 사용한 다른 분의 풀이 (클릭)
// substr
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}

무슨 소리인가 싶어서 찾아봤더니
새로운 ECMAScript 코드를 작성할 때는
해당 기능을 사용하거나 존재함을 가정해선 안된다고 한다.


'쓰길 권장하지 않는 method들도 알아볼 필요가 있겠군,,'이라
느꼈던 순간이었다.
🍒 참고하면 좋을 자료 🍒
📘 JavaScript .substr() Mozila (클릭)
📘 JavaScript의 타입과 자료구조 Mozila (클릭)
: 추가로 알아두면 좋을 문자열의 타입화(페이지 중간 'String 타입 中')
// 삼항연산자
function solution(s) {
let half = Math.floor(s.length/2);
return s.length % 2 == 0 ? s[half-1] + s[half] : s[half];
}

(알고리즘 문제를 보고
어떻게 풀어야겠다는 생각을 떠올리기 시작한 것만으로도
스스로에게 칭찬하며 위안 삼는 중,,🤭)
s.length를 2로 나눈 값이 0이 맞으면 (=짝수면)
[half(=2로 나눠서 Math.floor()처리된 값)에서 -1한 값]과
[half값]을 더한 값을 return하고 (=가운데 두 글자를 return)값
아니면 half 값만 return 하라는 뜻!
🍒 참고하면 좋을 자료 🍒
📘 다른 분의 Math.floor() + 삼항연산자 풀이 (클릭)