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()은 시작 인덱스와 마지막 인덱스를 입력값으로 받는다는 점이다.
'알고리즘' 카테고리의 다른 글
Daily Coding 16. isIsogram (0) | 2023.02.06 |
---|---|
Daily Coding 15. modulo (0) | 2023.02.03 |
Daily Coding 05. firstReverse (0) | 2023.01.25 |
Daily Coding 04. firstCharacter (0) | 2023.01.24 |
Daily Coding 03. powerOfTwo (0) | 2023.01.24 |
댓글