본문 바로가기
알고리즘

Daily Coding 06. letterCapitalize

by 디디 ( DD ) 2023. 1. 25.

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

댓글