Published 2024. 7. 16. 15:55

유형 : 구현

풀이 시간 : 10분

 

def solution(babbling):
    answer = 0
    yes = ["aya", "ye", "woo", "ma"]
    for i in babbling:
        bablist = list(i)
        curvocab = ''
        recent = ''
        tf = []
        for j in range(len(bablist)):
            curvocab += bablist[j]
            if ''.join(curvocab) in yes and recent != ''.join(curvocab):
                recent = ''.join(curvocab)
                curvocab = ''
                tf.append(True)
        if curvocab != '':
            tf.append(False)
        if tf and False not in tf:
            answer += 1
    return answer

 

babbling을 순회한다. 

한 단어당 가능 여부를 판별

  : 한 글자씩 append하며 해당 단어가 옹알이 가능 단어인지 check -> 

    가능이라면 => 지금까지 append된 단어 삭제, tf 배열에 True 추가, 연속 두 단어 말하기가 불가능하므로 recent에 현재 간어 저장

  : 알파벳을 끝까지 순회한 후, curvocab에 남아 있는 단어가 있다면 그 단어는 옹알이 불가능 단어이므로 False를 추가

 

=> tf 배열을 체크하여 빈 배열이 아니고 False가 없다면, 즉 True로만 이루어져 있고 전부 true라면

옹알이 가능 단어이므로 answer += 1

복사했습니다!