*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;
}
'Javascript 공부 > 알고리즘 풀이' 카테고리의 다른 글
(1) 코딜리티 - binaryGap (0) | 2019.08.29 |
---|---|
자바스크립트 알고리즘(12) - pyramids (0) | 2019.08.26 |
자바스크립트 알고리즘(11) - matrix (0) | 2019.08.26 |
자바스크립트 알고리즘(10) - fibonacci (0) | 2019.08.26 |
자바스크립트 알고리즘(9) - steps (0) | 2019.08.26 |
댓글