알고리즘 문제풀이

늑대와 올바른 단어[백준 13022]

wiojfe 2024. 9. 22. 19:47

https://www.acmicpc.net/problem/13022

 

규칙에 맞는 문자열을 찾기위해 정규표현식을 사용한다. 

finditer를 사용해서 규칙에 맞는 부분들을 추출한다. 

import re

def is_valid_wolf(word):
    # 정규표현식 패턴: w+, o+, l+, f+ 그룹을 추출
    pattern = r'(w+)(o+)(l+)(f+)'
    matches = re.finditer(pattern, word)
    
    for match in matches:
        w_group, o_group, l_group, f_group = match.groups()
        
        # 각 그룹의 길이가 동일한지 확인
        if len(w_group) != len(o_group) or len(o_group) != len(l_group) or len(l_group) != len(f_group):
            return 0
        
        # 매칭된 패턴을 제거하고 계속 진행
        word = word.replace(match.group(), '', 1)
    
    # 모든 패턴이 처리된 후 남은 문자열이 없어야 올바른 단어
    if word:
        return 0
    
    return 1

# 입력 받기
word = input().strip()
print(is_valid_wolf(word))