문제
https://www.acmicpc.net/problem/2331
풀이
- 수열을 만드는 반복문을 만든다.
- 도중에 기존에 있는 원소와 같은 원소가 나오면 반복문을 종료한다.
- 처음으로 나온 같은 원소의 인덱스를 출력한다. (인덱스는 0부터 시작이기에 더하고 뺄 필요가 없다.)
너무 간단하게 풀렸는데 시간복잡도가 별로 좋아보이진 않는다. 더 좋은 방법이 있을듯 싶다.
코드
a, p = map(int, input().split())
seq = [a]
while True:
element = 0
for i in str(seq[-1]):
element += (int(i) ** p)
if element in seq:
break
seq.append(element)
print(seq.index(element))