1seul357

[SWEA] 그룹 나누기 본문

알고리즘/SWEA

[SWEA] 그룹 나누기

1seul 2021. 11. 28. 16:08
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