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

자바스크립트 알고리즘(13) - vowels

by soldonii 2019. 8. 26.

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

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

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


지문

// Write a function that returns the number of vowels
// used in a string.  Vowels are the characters 'a', 'e'
// 'i', 'o', and 'u'.
// --- Examples
//   vowels('Hi There!') --> 3
//   vowels('Why do you ask?') --> 4
//   vowels('Why?') --> 0

 

1번 풀이 : iterative

1. count를 0으로 초기화해서 변수를 만든다.

2. aeiou가 담긴 string 또는 array를 만든다.(array가 더 선호되는 방법)

3. includes를 활용하여 true면 count를 올린다.

function vowels(str) {
  let count = 0;
  // const checker = "aeiou";
  const checker = ['a','e','i','o','u'];
  for (let char of str.toLowerCase()) {
    // if (char === 'a' || char === 'e' || char === 'i' || char === 'o' || char === 'u')
    if (checker.includes(char)) {
      count++;
    }
  }
  return count;
}

 

2번 풀이 : regExp

1. match 와 regexp를 활용하여, 찾은 애들을 배열로 만들고, 그것을 matches 변수에 저장한다.

    1-1. g는 string의 끝까지 계속 찾으라는 의미, i는 case intensive, 즉 대소문자 가리지 말고 찾으라는 의미.

    1-2. match()는 해당 문자열이 있으면 배열을 return, 그렇지 않으면 null을 return.

2. 배열이 truthy하면 배열의 길이(=일치하는 개수)를, falsy하면 0을 return.

function vowels(str) {
  const matches = str.match(/[aeiou]/gi);
  return matches ? matches.length : 0;
}

댓글