문제 설명 :
이번 문제는 문자열을 입력받고 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴하는 문제였다.
문제
문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴해야 합니다.
입력
인자 1 : str
출력
주의 사항
입출력 예시
let output1 = letterCapitalize('hello world');
console.log(output1); // "Hello World"
let output2 = letterCapitalize('javascript is sexy ');
console.log(output2); // "Javascript Is Sexy "
풀이 코드 설명
나의 첫번째 풀이 : 열심히 생각하면서 풀었으나 다음과 같은 상황에서 테스트를 통과하지 못했다.
function letterCapitalize(str) {
//빈 문자열이면 빈문자열 반환
if (str.length === 0) {
return "";
}
// 모든 문자를 공백으로 구분
blank_str = str.split(" ");
//결과값을 빈 문자열로 선언
let result = "";
//console.log("blank", blank_str);
for (let i = 0; i < blank_str.length; i++) {
let first = blank_str[i].charAt(0);
let other = blank_str[i].slice(1);
let newWord = first.toUpperCase() + other;
result = result + newWord;
}
return result;
}
나의 두번째 풀이
이후 한번에 내가 원하는 방식으로 해줄 메소드나 방법은 없을까 하다가 정규표현식을 이용한
방법을 찾아서 적용했을 때 바로 해결됐다. 저 긴 줄이 다섯 줄 정도로 해결된다.
function letterCapitalize(str){
if (str.length === 0) {
return "";
}
let newWord = str.replace(/\b[a-z]/g, (char) => char.toUpperCase());
return newWord;
}
알고리즘 문제풀이 - convertListToObject (0) | 2022.12.21 |
---|---|
Javascript - Spread 연산자 (0) | 2022.12.20 |
알고리즘 문제풀이 - firstReverse (0) | 2022.12.20 |
알고리즘 문제풀이 - firstCharacter (0) | 2022.12.19 |
알고리즘 문제풀이 - powerOfTwo (0) | 2022.12.19 |