Programmers

Programmers 문제 풀이 22

백단비 2023. 6. 18. 11:57

문제 설명 : 옹알이(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