Problem
- Given a string and an array of integers representing indices, capitalize all letters at the given indices.
- 문자열과 정수의 배열이 주어진다.
- 주어진 색인의 모든 문자를 대문자로 변경한다.
- The input will be a lowercase string with no spaces and an array of digits.
- 입력은 공백이 없는 소문자 문자열과 숫자 배열이다.
Solution 01
function capitalize(str, arr) {
str = str.split('');
for (let i = 0; i < str.length; i++) {
for (let j = 0; j < arr.length; j++) {
if (i === arr[j]) {
str[i] = str[i].toUpperCase();
}
}
}
return str.join('');
}
capitalize('code', [0]); // Code
capitalize('code', [3]); // codE
capitalize('code', [0, 1]); // COde
capitalize('code', [0, 2]); // CoDe
capitalize('code', [0, 3]); // CodE
capitalize('code', [2, 3]); // coDE
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
toUpperCase()
: 문자열을 대문자로 변환한다.
join()
: 배열의 모든 element를 결합하고, 새 문자열로 반환한다.
Solution 02
function capitalize(str, arr) {
return str.split('').map((i, index) => (arr.includes(index) ? i.toUpperCase() : i)).join('');
}
capitalize('code', [0]); // Code
capitalize('code', [3]); // codE
capitalize('code', [0, 1]); // COde
capitalize('code', [0, 2]); // CoDe
capitalize('code', [0, 3]); // CodE
capitalize('code', [2, 3]); // coDE
map()
: 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.
includes()
: 특정 값이 있는지 확인하고, true/false를 반환한다.
Solution 03
function capitalize(str, arr) {
return [...str].map((i, index) => arr.includes(index) ? i.toUpperCase() : i).join('');
}
capitalize('code', [0]); // Code
capitalize('code', [3]); // codE
capitalize('code', [0, 1]); // COde
capitalize('code', [0, 2]); // CoDe
capitalize('code', [0, 3]); // CodE
capitalize('code', [2, 3]); // coDE