https://www.acmicpc.net/problem/2331
2331번: 반복수열
첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.
www.acmicpc.net
import sys
input = sys.stdin.readline
def dfs(num,visited=[]):
if num in visited:
return visited[:visited.index(num)]
visited.append(num)
return dfs(seq(num),visited)
def seq(a):
return sum(map(lambda x: int(x) ** k,list(str(a))))
n , k = map(int,input().split())
print(len(dfs(n)))
seq로 다음 수열의 값을 반환하는 함수와 재귀를 통해서 전에 있었던 곳을 간다면 멈추고 그 전까지를 반환하는 함수를 만들었다.
'백준 문제 풀이 및 피드백' 카테고리의 다른 글
2023.01.17 유기농 배추 백준 (2) | 2023.01.17 |
---|---|
2023.01.16 백준 DFS와 BFS (0) | 2023.01.16 |
2023.01.15 미로탐색 백준 (0) | 2023.01.15 |
2023.01.15 영역구하기 백준 (0) | 2023.01.15 |
2023.01.15 단지번호붙이기 백준 (0) | 2023.01.15 |