PROGRAMMERS

[프로그래머스/파이썬] 옹알이 (1)

kode-daks 2025. 2. 9. 23:33

내 풀이 

from collections import deque


def solution(babbling):
    answer = 0
    capable = ["aya", "ye", "woo", "ma"] # 조카가 말할 수 있는 단어
    alpha = ["a", "e", "m", "o", "w", "y"] # 말할 수 있는 단어를 구성하는 알파벳
    
    for bbl in babbling:
    	# 단어마다 초기화
        word = deque() # 글자를 쌓아가는 큐
        good = True # 가능한 단어였는지
        
        # 글자를 하나씩 큐에 넣으면서,
        for w in bbl:
        	# 가능한 알파벳이 아니면 불가능한 단어임을 표시하고 끝
            if w not in alpha: 
                good = False
                break
            
            # 가능한 알파벳이면 글자를 쌓고
            word.append(w)
            if "".join(word) in capable: # 합쳤을 때 가능한 단어에 있으면 비워줌
                word = deque()
                
		# 모든 글자를 다 돌았을 때 비워지지 않았다면
        # 불가능한 단어가 남아 있음을 의미하며
        # 비어 있더라도 불가능한 알파벳이 처음부터 나오면 비어 있을 수 있으므로
        # 비어 있고, 가능한 단어들만 나왔을 때 카운트를 함
        if not word and good:
            answer += 1
    return answer

 

메모

주중 1일 1코테 챌린지(?)를 미루다가 미션 해결용으로 급하게 푼 것이라 깔끔한 코드일지는 모르겠다.

시간 내서 다른 코드도 봐야겠다.