알고리즘/백준(BOJ)

[백준/알고리즘]#2331: 반복수열 [파이썬(python)/수학]

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

 

2331번: 반복수열

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

www.acmicpc.net

문제 이해하는 것만 한참 걸린 문제였다... 실버에서도 헤매는 알린이 ㅠㅠ

 

먼저 각 자릿수로 분리하기 위해 10씩 나누는 작업을 진행했고

자릿수 별 숫자로 계산한 res 결과값이 perm리스트에 존재한다면 break로 루프를 빠져나갔다.

그 해당 인덱스까지 출력.

 

파이썬 코드

#2331 반복수열
import sys
input = sys.stdin.readline

A, P = map(int, input().split())

perm = [A]

while True:
    res = 0
    A=perm[-1]

    while(A!=0):
        res += ((A%10)**P)    
        A = A//10
        
    if res in perm:
        fin = perm.index(res)
        perm = perm[:perm.index(res)]
        break   
    perm.append(res)
    A=res

print(fin)