목차
반응형
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.
단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 조건
- s는 길이가 1 이상, 100이하인 스트링입니다.
나의 풀이
function solution(s) {
let answer = '';
if (s.length % 2 == 0) {
let even = Math.floor(s.length / 2);
let evenAnswer = [s[even - 1], s[even]].join('');
return evenAnswer;
} else {
let odd = Math.floor(s.length / 2);
return s[odd];
}
}
다른 풀이
function solution(s) {
const mid = Math.floor(s.length/2);
return s.length %2 === 1 ? s[mid] : s[mid-1]+s[mid];
}
마무리
이번 문제는 배열의 중간 인덱스의 값을 출력하는 문제였다.
일단 배열의 길이를 2로 나눈 값을 반올림 해서 중간 인덱스 번호를 찾았다.
리턴에는 두 가지 조건이 있었다.
배열의 개수가 짝수라면 중간 인덱스 값+이전 인덱스 값을 더해 리턴하고, 홀수라면 중간 인덱스 값을 리턴하면 됐다.
나는 내가 문제를 해석한 그대로 식으로 작성해서 풀이했지만, 이를 삼항연산자를 통해 더 간단하게 풀이 할 수도 있었다.
그리고 배열의 두 값을 합칠 때 굳이 join() 을 안쓰고 + 로 합쳐도 됐었다.. 다 풀고 한 번씩만 더 생각하자..
반응형