====== 늑대와 올바른 단어 ====== ===== 풀이 ===== * 그냥 주어진 조건에 맞는지 시키는대로 확인하면 되는 문제. 같은 글자별로 그룹을 만들어 놓고 하면 좀더 간단한데, w그룹, o그룹, l그룹, f그룹이 반복되는 순서로 등장해야 하고, 이것을 한 사이클이라 하면 한 사이클 안의 그룹들의 글자수가 전부 똑같아야 한다. 이것을 만족하면 올바른 단어이다. * 시간복잡도는 O(n) ===== 코드 ===== """Solution code for "BOJ 13022. 늑대와 올바른 단어". - Problem link: https://www.acmicpc.net/problem/13022 - Solution link: http://www.teferi.net/ps/problems/boj/13022 """ import itertools def main(): word = input() chars = [k for k, _ in itertools.groupby(word)] lengths = (len(list(g)) for _, g in itertools.groupby(word)) is_correct = ( len(chars) % 4 == 0 and all(ch1 == ch2 for ch1, ch2 in zip(chars, itertools.cycle('wolf'))) and all(l1 == l2 == l3 == l4 for l1, l2, l3, l4 in zip(*([lengths] * 4)))) print('1' if is_correct else '0') if __name__ == '__main__': main() {{tag>BOJ ps:problems:boj:실버_1}}