가오리의 코딩일기

[10451] 순열 사이클 본문

Python/백준

[10451] 순열 사이클

류경혜 2022. 8. 21. 20:00

import sys
sys.setrecursionlimit(10000)  # 재귀 한도 풀어주기

def dfs(start):
    visited[start] = True
    node = graph[start]
    if not visited[node]:
        dfs(node)

testCase = int(sys.stdin.readline())
for _ in range(testCase):
    n = int(sys.stdin.readline())
    graph = [0] + list(map(int, sys.stdin.readline().split()))
    visited = [True] + [False] * n
    result = 0
    for i in range(1, n+1):
        if not visited[i]:
            dfs(i)
            result += 1
    print(result)

'Python > 백준' 카테고리의 다른 글

[2178] 미로 탐색  (0) 2022.08.21
[2667] 단지번호 붙이기  (0) 2022.08.21
[11724] 연결 요소의 개수  (0) 2022.08.21
[1406] 에디터  (0) 2022.08.15
[1158] 요세푸스 문제  (0) 2022.08.15