아이디어
- 입력값 A부터 글자수대로 쪼개서(list) P번 반복한다음 다 더해준다.
- 그리고 반복되는 부분 이 생기면 그거 빼고 남는 수 len 출력 -> 그 숫자의 index를 구하면됨
시간복잡도
코드
- map 이용
from collections import deque
import sys
imput = sys.stdin.readline
a, p = map(int, input().split())
sequence = []
q = deque([(a)])
while q:
num = q.popleft()
if num in sequence:
print(sequence.index(num))
break
split_num = list(map(int, str(num)))
next_num = list(map(lambda x: x ** p, split_num))
q.append(sum(next_num))
sequence.append(num)
- for문 이용
from collections import deque
import sys
imput = sys.stdin.readline
a, p = map(int, input().split())
sequence = []
q = deque([(a)])
while q:
num = q.popleft()
next_num = 0
if num in sequence:
print(sequence.index(num))
break
for n in str(num):
next_num += int(n) ** p
q.append(next_num)
sequence.append(num)