1seul357
[SWEA] 그룹 나누기 본문
def Find(x):
if P[x] != x:
P[x] = Find(P[x])
return P[x]
def Union(a, b):
Pa = Find(a)
Pb = Find(b)
P[Pb] = Pa
T = int(input())
for TC in range(T):
N, M = map(int, input().split())
P = [i for i in range(N+1)]
arr = list(map(int, input().split()))
ans = 0
q = []
for i in range(0, len(arr), 2):
if Find(arr[i]) == Find(arr[i+1]):
continue
Union(arr[i], arr[i+1])
for i in range(1, N + 1):
if i == P[i]:
ans += 1
print('#{} {}'.format(TC+1, ans))
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 격자판의 숫자 이어붙이기 (0) | 2021.11.28 |
---|---|
[SWEA] 장훈이의 높은 선반 (0) | 2021.11.28 |
[SWEA] 정사각형 방 (0) | 2021.11.28 |
[SWEA] 이진 탐색 (0) | 2021.11.28 |
[SWEA] 최소 이동 거리 (0) | 2021.11.28 |