capitalize.js (7kyu 89)
Codewars 알고리즘 풀이
Problem
Given a string, capitalize the letters that occupy even indexes and odd indexes separately, and return as shown below.
주어진 문자열의 짝수 인덱스와 홀수 인덱스를 구분해서 대문자로 변경한다.
'abcdef'
->['AbCdEf', 'aBcDeF']
For example:
code --> [‘CoDe’, ‘cOdE’]
Solution 01
function capitalize(str) {
let even = '';
let odd = '';
for (let i = 0; i < str.length; i++) {
if (i % 2 === 0) {
even += str.toUpperCase()[i];
odd += str[i];
} else {
even += str[i];
odd += str.toUpperCase()[i];
}
}
return [even, odd];
}
capitalize('abcdefgh'); // ['AbCdEfGh', 'aBcDeFgH']
capitalize('codewars'); // ['CoDeWaRs', 'cOdEwArS']
toUpperCase()
: 문자열을 대문자로 변환한다.
Solution 02
function capitalize(str) {
const even = str.split('').map((i, index) => index % 2 === 0 ? i.toUpperCase() : i).join('');
const odd = str.split('').map((i, index) => index % 2 !== 0 ? i.toUpperCase(): i).join('');
return [even, odd];
}
capitalize('abcdefgh'); // ['AbCdEfGh', 'aBcDeFgH']
capitalize('codewars'); // ['CoDeWaRs', 'cOdEwArS']
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
map()
: 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.
join()
: 배열의 모든 element를 결합하고, 새 문자열로 반환한다.