홍우진의 개발 일기장

[백준] 2331번: 반복수열/ 파이썬 본문

알고리즘/백준

[백준] 2331번: 반복수열/ 파이썬

홍우진 2022. 8. 4. 22:55
728x90
반응형

문제 링크


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

 

2331번: 반복수열

첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.

www.acmicpc.net

 

풀이 코드


from sys import stdin

A, P = map(int, stdin.readline().split())
check = [A]

while True:
    new = 0
    for i in (str(check[-1])):
        new += int(i) ** P
    if new in check:
        while True:
            if new == check.pop():
                print(len(check))
                exit()
    else:
        check.append(new)

코드 해석


수를 계산 할 때 마다 체크 리스트에 수를 추가한다.

새로운 수가 체크 리스트 안에 있으면 pop을 한 후

체크 리스트의 길이를 출력한다.

 

728x90
반응형
Comments