풀이 주어진 규칙에 따라 수열을 구하다보면 반복되는 수열이 나타난다는 점을 활용해서 문제를 해결해야한다. 반복되는 수열이 다시 나타난다는 점은 이미 생성된 수열에 중복되는 숫자가 있다는 의미다. 때문에 그 숫자를 기준으로 앞선 수열을 슬라이싱하여 그 길이를 출력해주면 해결할 수 있다. 소스코드 import sys input = sys.stdin.readline a, p = map(int, input().split()) d = [a] while True: temp = sum([int(i)**p for i in str(d[-1])]) if temp in d: print(len(d[:d.index(temp)])) break else: d.append(temp) References BOJ 2331 - 반복수열