Javascript - 옹알이(1)

이율곡·2023년 7월 23일

Programmers

목록 보기
43/44
post-thumbnail

옹알이(1)

문제

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

입출력 예

babblingresult
["aya", "yee", "u", "maa", "wyeoo"]1
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]3

접근방법

이 문제의 핵심은 주어진 4개의 발음을 한 번씩 사용하여 만들 수 있는 단어를 생성하고, 이 단어가 주어진 단어 목록에 포함되어 있는지 확인하는 것이다.

  1. 주어진 4개의 발음을 한 번씩 사용하여 만들 수 있는 모든 단어를 생성.
  • 정규표현식을 사용하여 주어진 단어에 각 발음이 한 번씩만 포함되어 있는지 확인.
  1. 생성된 단어가 주어진 단어 목록에 포함되어 있는지 확인.
  2. 일치하는 단어의 개수를 반환

풀이

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

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

  return answer;
}

우선 주어진 4개의 발음을 한 번씩만 포함하는 단어를 찾는 정규표현식을 정의한다.

그리고 주어진 단어 목록을 순회하면서 각 단어가 정규표현식에 일치하는지 확인한다. 그런 다음 단어의 개수를 반환한다.


정리하기

이 문제는 문자열 처리 능력과 정규표현식을 이해하고 활용하는 능력이 중요하다. 정규표현식은 꾸준히 공부해두는 것이 필요하고 어떨 때 사용해야 할 지 계속 익혀둬야 한다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글