문제: 2331 반복수열

Sungmin·2023년 3월 30일
0
post-thumbnail

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


Solution

a, p = map(int, input().split())
nums = [a]

while True:
    res = 0
    for i in str(nums[-1]):
        res += int(i) ** p
    
    if res in nums:
        break

    nums.append(res)

print(nums.index(res))

배운점

이 문제는 주어진 대로 풀면돼서 문제 자체의 이해는 매우 쉬웠지만
풀이방식이 익숙하지않은 나한테는 풀이방식을 보고도 이해하는데 시간이 오래걸렸다.
처음 a를 리스트로 만들어 nums에 넣는 것과 for i in str(nums[-1]): 이렇게 반복하면 nums[-1]은 57이다. 그런데 i는 5와 7로 나누어진다는 것을 몰랐다.
많이 부족한것 같다.
index함수를 활용해 위치를 찾는 것도 익숙하지 않아 생각이 안났는데
이번 기회를 통해 확실히 알아가게 되었다.

profile
Let's Coding

0개의 댓글