알고리즘 문제/프로그래머스

[JavaScript] 옹알이 (1) - Level 0

히찔 2023. 2. 22. 22:35

코드

function solution(babbling) {
    const available = ["aya", "ye", "woo", "ma"]
    
    const tempArr = babbling.map(babbling => {
        available.forEach(available => {
            if (babbling.includes(available)) babbling = babbling.replace(available, ' ')
            return
        })
        return babbling
    })
    
    return tempArr.filter(v => v.replace(/\s/g, '').length === 0).length
}
  • babbling 배열에서 머쓱이의 조카가 발음할 수 있는 단어를 ' '로 치환한다.
  • ''가 아닌 ' '인 이유는 예를들어 'wyeoo' => ye 치환 : 'woo' => woo 치환 : '' 가 가능해지는 것을 방지하기 위함이다.
  • 공백만 존재하는 tempArr의 값의 갯수를 반환한다!

 

다른 사람 풀이

function solution(babbling) {
  var answer = 0;
  const regex = /^(aya|ye|woo|ma)+$/;

  babbling.forEach(word => {
    if (regex.test(word)) answer++;  
  })

  return answer;
}
  • test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환해준다.
  • 정규식을 사용해서 조건에 부합하면 answer의 갯수를 늘려주고 answer를 반환한다.

 

이렇게 간단하다니 오늘도 새삼 놀란다..!!

반응형