👉 사용 언어 : PYTHON3
✅ Solution
def solution(babbling):
answer = 0
for i in babbling:
for j in ["aya", "ye", "woo", "ma"]:
if j in i:
i = i.replace(j, ' ')
i = i.replace(' ','')
if i == '':
answer += 1
return answer
👉 아이디어
- 중첩 for문을 돌려
- babbling 배열의 각 원소에 말할 수 있는 발음이 존재하는지 비교한다.
- 각 원소에 가능한 발음이 존재하면 해당 발음을 ' '으로 치환한다.
- 제한사항에 각 발음은 최대 한 번씩만 등장한다고 하였으므로 ["aya", "ye", "woo", "ma"]는 한 번만 순회한다.
- 모두 가능한 발음으로 이루어져있는지 확인하기 위해 ' '을 다시 ''로 치환한다.
- 그 후, 치환한 값이 ''인 경우에는 머쓱이의 조카가 발음할 수 있는 단어의 개수를 +1 한다.
✅ 다른 사람 풀이 참고
import re
def solution(babbling):
regex = re.compile('^(aya|ye|woo|ma)+$')
cnt=0
for e in babbling:
if regex.match(e):
cnt+=1
return cnt
👉 깨달은 것 / 알게된 것
- 정규표현식을 사용하여 풀이할 수 있다.
- (표준) 라이브러리 : re
- 메서드 참고 : https://wikidocs.net/4308
- re.compile을 사용하여 정규 표현식(위 예에서는 ^(aya|ye|woo|ma)+$)을 컴파일한다.
- 리턴값을 객체 regex(컴파일된 패턴 객체)에 할당한다.
- 패턴 이란❓ 정규식을 컴파일한 결과❗️
- match 메서드
- 문자열의 처음부터 정규식과 매치되는지 조사한다.
- 부합되지 않을 경우, None을 리턴하며 부합되는 경우, match 객체를 리턴한다.
- babbling 배열에서 꺼낸 문자열과 regex 정규식과 부합되는지 확인 후, 부합되면 카운트변수 +1을 한다.
'알고리즘풀이 > 프로그래머스' 카테고리의 다른 글
| [2/5] Kakao Internship 기출문제 풀이 (0) | 2024.02.03 |
|---|---|
| [2/2] Kakao Internship 기출문제 풀이 (0) | 2024.01.31 |
| [1/28] Kakao Internship 기출문제 풀이 (0) | 2024.01.26 |
| 합성수 찾기 (0) | 2024.01.24 |
| 외계어 사전 (0) | 2024.01.21 |