단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
s는 길이가 1 이상, 100이하인 스트링입니다.
s | return |
---|---|
"abcde" | "c" |
"qwer" | "we" |
function solution(s) {
var answer = '';
return answer;
}
function solution(s) {
var answer = '';
if (s.length %2 == 0) { //s 의 길이가 짝수일 때
answer = s[s.length / 2 - 1] + s[s.length / 2]
// s 길이의 반 - 1 값에 해당하는 index 값 + s 길이의 반 값에 해당하는 index 값
} else { //s 의 길이가 홀수일 때
answer = s[Math.floor(s.length/2)] // s 길이의 반 값에서 반내림한 index 값
}
return answer;
}
문제 설명 (과 구글링) 에서 힌트를 얻었다. s의 길이 (s.length) 가 짝수라면 (if %2 == 0).
그리고 예시인 "qwer" 의 길이를 2로 나누었을 때 값은 2이다. 그렇다면 "qwer" 의 두 번째 index 값은 "e"가 된다. (s[2] = "e") 하지만 "w" 값을 얻기 위해서는 첫 번째 index 값도 필요하기 때문에 나눈 결과의 몫의 값에서 1을 빼준 index 값을 더해줬다.
두 번째 예시인 "abcde" 의 길이를 2로 나누었을 때 값은 2.5이다. 여기서 가운데 값을 얻기 위해서는 s[2], 즉 s의 두 번째 index 값이 필요하기 때문에, 반내림 기능이 있는 Math.floor() function을 사용했다.
(출처: https://developer.mozilla.org/ko/)
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
condition ? exprIfTrue : exprIfFalse
//조건문 ? true일 때 실행할 식 : false 일 때 실행할 식
(출처: https://developer.mozilla.org/ko/)