문제 링크
https://www.acmicpc.net/problem/2331
A를 문자열로 바꾸고 인덱싱하여 수열 계산을 진행시켰다.
그리고 반복되는 구간이 나타나게 되는(똑같은 수가 나타나는 때)에 index()를 활용하여 그 반복되는 숫자가 배열에 처음 나타나는 인덱스를 저장시켰다.
정답 코드
import sys
A, P = map(int,sys.stdin.readline().split())
arr = [A]
while True:
result = 0
for i in range(len(str(A))):
result += int(str(A)[i])**P
A = result
if arr.count(A):
mark = arr.index(A)
break
else:
arr.append(A)
count = 0
for i in range(mark):
count += 1
print(count)
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
Baekjoon Online Judge 2667번 파이썬 (0) | 2022.08.08 |
---|---|
Baekjoon Online Judge 9466번 파이썬 (0) | 2022.08.05 |
Baekjoon Online Judge 10451번 파이썬 (0) | 2022.08.04 |
Baekjoon Online Judge 1707번 파이썬 (0) | 2022.08.02 |
Baekjoon Online Judge 11724번 파이썬 (0) | 2022.08.01 |