문제 설명 : 옹알이(1)
"aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음만 할 수 있는 조카가 있음
문자열 배열 babbling이 매개변수로 주어 질 때, 조카가 발음할 수 있는 단어의 개수를 return 하는 solution함수??
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장
- 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장
- 문자열은 알파벳 소문자로만 이루어져 있음
입출력 예
babbling | result |
["aya", "yee", "u", "maa", "wyeoo"] | 1 |
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
문제 풀이
function solution(babbling) {
var answer = 0;
const regex = /^(aya|ye|woo|ma)+$/;
babbling.forEach((d) => {
if (regex.test(d)) answer++;
})
return answer;
}
정규식을 이용해서 풀었는데 처음에 /^(aya|ye|woo|ma)$/ 이렇게 하면 정확한 것만 걸러주니까 풀리겠지 했는데
딱 그 안에 있는 단어 한가지에 맞춰져야 걸러주는 거였네요....
그래서 정규 표현식을 좀 더 찾아 봤더니 +를 넣어주면 정규식에 넣어준 것들이 한 번 이상 반복됨을 나타낸다고 해서
/^(aya|ye|woo|ma)+$/ +를 넣어주니 잘 동작합니다.
문제를 풀고 다른 사람의 풀이를 보니 저와 같이 푼 분들이 있더라고요
역시 정규식이 최고인걸 느끼고 정규표현식에 관하여 공부하러 갑니다.
정규표현식이 이해 잘 되게 정리되어 있는 블로그입니다.
https://hamait.tistory.com/342
정규표현식 (Regex) 정리
정규표현식은 아주 가끔 쓰기때문에 항상 다시 볼때마다 헷갈리곤 하기에 주요 사용예를 내가 나중에 다시 봤을 때 편하도록 정리하여 보았다. 정규 표현식의 용어들정규 표현식에서 사용되는
hamait.tistory.com
320x100
'Programmers' 카테고리의 다른 글
Programmers 문제 풀이 24 (0) | 2023.06.20 |
---|---|
Programmers 문제 풀이 23 (0) | 2023.06.19 |
Programmers 문제 풀이 21 (0) | 2023.05.22 |
Programmers 문제 풀이 20 (0) | 2023.05.21 |
Programmers 문제 풀이 19 (0) | 2023.05.20 |