본문 바로가기
Algorithm

[BAEKJOON] 10451번: 순열 사이클

by Y06 2021. 11. 8.

10451번 문제이다.

사진을 누르면 문제로 이동한다.

문제는 Python언어로 구현하였다.

 

import sys
sys.setrecursionlimit(10000)
input = sys.stdin.readline

test_case = int(input())

def DFS(node):
    visited[node] = True
    next_node = tree[node]
    if not visited[next_node]:
        DFS(next_node)
for _ in range(test_case):
    N = int(input())
    tree = [0] + list(map(int, input().split()))
    visited = [False] * (N+1)
    answer = 0
    for i in range(1, N+1):
        if not visited[i]:
            DFS(i)
            answer += 1
    print(answer)