본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 2331 반복수열

by Alan_Kim 2023. 11. 5.
728x90
반응형

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

 

2331번: 반복수열

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

www.acmicpc.net

 

문제 해결

  • 문제를 읽으면서 풀기 쉬운문제
  • 다만 반복이 시작될 때 숫자를 탐색하는데 약 $O(N^{2})$이 걸린다는게 마음에 걸린다. 하지만 숫자가 크지 않으므로 넉넉하다.

 

CODE

import sys
input = sys.stdin.readline

def solution(x, y):
    result = [x]
    x= str(x)
    while 1:
        num = 0
        for i in range(len(x)):
            num += int(x[i])**y
        if num in result:
            return result.index(num)
        else:
            result.append(num)
            x = str(num)
if __name__=='__main__':
    A, P = map(int, input().split())
    answer = solution(A,P)
    print(answer)
728x90
반응형

댓글