less than 1 minute read

1. 개요

2. 풀이

def solution(babbling):
    verbs = set(["aya", "ye", "woo", "ma"])
    answer = 0
    
    for b in babbling:
        stack, lastWord, flag = [], "", True
        
        for c in b:
            stack.append(c)
            curWord = "".join(stack)
            
            if curWord == lastWord:
                flag = False
                break
            
            if curWord in verbs:
                lastWord = curWord
                stack.clear()

        answer += (flag and not stack)

    return answer

3. 정규식 풀이

def solution(babbling):
    answer = 0
    REGEXA = "aya|ye|woo|ma"
    REGEXB = "ayaaya|yeye|woowoo|mama"
    
    for b in babbling:
        # 다른발음이 있는지 체크한다.
        if sum(len(c) for c in re.findall(REGEXA, b)) != len(b):
            continue
        
        # 연속된 발음이 있는지 체크한다.
        if re.findall(REGEXB, b):
            continue

        answer += 1

    return answer

Leave a comment