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)
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 1753번: 최단경로 (0) | 2021.11.16 |
---|---|
[BAEKJOON] 1450번: 냅색문제 (0) | 2021.11.16 |
[BAEKJOON] 2667번: 단지번호붙이기 (0) | 2021.11.08 |
[BAEKJOON] 13977번: 이항 계수와 쿼리 (0) | 2021.11.03 |
[BAEKJOON] 11401번: 이항 계수 3 (0) | 2021.11.03 |