알고리즘
Daily Coding 06. letterCapitalize
디디 ( DD )
2023. 1. 25. 09:11
Q. 문자열(공백이 있는 알파벳 문자열)을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴해야 합니다.
ex.'hello world' → 'Hello World'
//첫 번째 풀이
function letterCapitalize(str) {
let arr = str.split(' ');
let result = '';
for (let i = 0; i < arr.length; i++) {
result = result + arr[i][0].toUpperCase() + arr[i].slice(1, arr[i].length) + ' ';
}
return result.slice(0, -1);
}
처음에는 이렇게 풀었다. 그런데 이 방법으로는 공백만 입력되었을 때나 공백이 여러 번 입력 되었을 때를 걸러낼 수 없었다.
//레퍼런스 코드를 참고한 두 번째 풀이
function letterCapitalize(str) {
let arr = str.split(' ');
for (let i = 0; i < arr.length; i++) {
if (arr[i].length > 0) { //공백인 경우를 거르는 조건 추가
arr[i] = arr[i][0].toUpperCase() + arr[i].substring(1);
}
}
return arr.join(' ');
}
레퍼런스 코드에는 substr()가 쓰였는데, mdn 문서에서 해당 메서드의 사용을 권장하지 않아 이와 비슷한 substring()이라는 메서드를 사용해서 풀어 보았다. 두 메서드의 차이점은 substr()은 시작 인덱스와 추출할 문자의 수를, substring()은 시작 인덱스와 마지막 인덱스를 입력값으로 받는다는 점이다.