본문 바로가기
  • soldonii's devlog
Javascript 공부/알고리즘 풀이

자바스크립트 알고리즘(8) - sentence capitalization

by soldonii 2019. 8. 26.

*Udemy의 "The Coding Interview Bootcamp: Algorithms + Data Structures" 강의에서 학습한 내용을 정리한 포스팅입니다.

*https://soldonii.github.io에서 작성한 글을 티스토리로 옮겨온 포스팅입니다.

*자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :)


지문

// Write a function that accepts a string.  The function should
// capitalize the first letter of each word in the string then
// return the capitalized string.
// --- Examples
//   capitalize('a short sentence') --> 'A Short Sentence'
//   capitalize('a lazy fox') --> 'A Lazy Fox'
//   capitalize('look, it is working!') --> 'Look, It Is Working!'

 

1번 풀이

1. 결과물을 담을 빈 배열을 만든다.

2. 원본 문자열을 공백을 기준으로 배열로 만든다.

    2-1. 해당 배열에서 for loop을 돌리고, 첫번째 element의 첫번째를 대문자로 한 후, 첫번째 element의 나머지를 slice를 이용해서 가져온다.

    2-2. 그렇게 가져온 애들을 push를 이용하여 처음 만든 빈 배열에 넣어준다.

3. 최종적으로 만들어진 배열을 join을 이용해서 공백을 넣어서 string으로 변환해준다.

function capitalize(str) {
  const word = [];

  for (let word of str.split(' ')) {
    words.push(word[0].toUpperCse() + word.slice(1));
  }
  return words.join(' ');
}

 

2번 풀이 : sort()

1. 빈 문자열을 만든다.

2. for loop을 이용해 문자열을 순회하면서,

    2-1. 만약 현재 element의 왼쪽 element가 공백이면, 현재 element를 대문자로 만들어서 빈 문자열에 넣는다.

    2-2. 그렇지 않을 경우 현재 element를 빈 문자열에 넣는다.

function capitalize(str) {
  let result = '';

  for (let i in str) {
    if (str[i-1] === ' ' || !str[i-1]) {
      result += str[i].toUpperCase();
    } else {
      result += str[i];
    }
  }
  return result;
}

댓글