🔻Algorithm/Baekjoon
[Baekjoon] 백준 10451 순열 사이클 Python
_니지
2024. 5. 10. 22:50
https://www.acmicpc.net/problem/10451
import sys
sys.setrecursionlimit(10**6)
def dfs(graph, visited, v):
visited[v] = 1
for i in graph[v]:
if not visited[i]:
dfs(graph, visited, i)
tc = int(sys.stdin.readline())
for _ in range(tc):
num = int(sys.stdin.readline())
temp = [int(x) for x in sys.stdin.readline().split(" ")]
# 그래프 세팅
graph = [[] for _ in range(num+1)]
visited = [0] * (num+1)
for i in range(1, len(graph)):
graph[i].append(temp[i-1])
# 사이클 찾기
cnt = 0
for i in range(1, len(graph)):
if not visited[i]:
dfs(graph, visited, i)
cnt += 1
print(cnt)
728x90
반응형