모음 개수 찾기(Find The Vowels)

강명모(codingBear)·2022년 2월 23일
0

algorithm_JavaScript

목록 보기
15/36
post-thumbnail

References

아래 링크의 강의 중 Section 13. Find The Vowels의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy


Solution 1. my solutions & includes()

// ver. 1.
function vowels(str) {
  const splited = str.toLowerCase().split("");
  let cnt = 0;

  for (let char of splited) {
    if (
      char === "a" ||
      char === "e" ||
      char === "i" ||
      char === "o" ||
      char === "u"
    ) {
      cnt++;
    }
  }
  
  return cnt;
}

console.log(vowels("Why do you ask?"));
// ver. 2.
function vowels(str) {
  let cnt = 0;
  const vowelsArr = ["a", "e", "i", "o", "u"];

  for (let i = 0; i < str.toLowerCase().length; ++i) {
    for (let j = 0; j < vowelsArr.length; ++j) {
      if (str.toLowerCase()[i] === vowelsArr[j]) {
        cnt++;
      }
    }
  }

  return cnt;
}

console.log(vowels("Why do you ask?"));
// with includes()
function vowels(str) {
  let count = 0;
  const vowelsChecker = ["a", "e", "i", "o", "u"];
  // const vowelsChecker = "aeiou";

  for (let char of str.toLowerCase()) {
    if (vowelsChecker.includes(char)) {
      count++;
    }
  }

  return count;
}

console.log(vowels("Why do you ask?"));

위 세 답안 모두 기본 작동 원리는 같다. for문으로 입력값 str을 탐색하여 a, e, i, o, u가 포함되어 있다면 count의 개수를 올리는 방식으로 짜여 있다.

includes() method는 주어진 배열을 탐색하여 argument의 값이 포함되어 있는지 여부에 따라 boolean값을 반환한다.
includes()+MDN_Link


Solution 2. with RegExp

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

console.log(vowels("Why do you ask?"));

match() method는 정규식을 판별하여 정규식 내 값이 포함되어 있으면 일치하는 모든 값들을 배열로 반환하고, 일치하는 값이 없으면 null을 반환한다.
match()_MDN_Link

profile
front-end 분야를 중점으로 공부 중!🐣

0개의 댓글