해리의 데브로그

(SW 문제해결 응용 구현 - 그래프) SWEA 5248 - 그룹 나누기

|

문제

  • SWEA 5248 - [파이썬 S/W 문제해결 구현 6일차] 그래프의 기본과 탐색 - 그룹 나누기
  • 문제링크
  • 문제의 저작권은 SW Expert Academy에 있습니다.

나의 코드

def Find_Set(x):
    if x == Parent[x]:
        return x
    else:
        return Find_Set(Parent[x])

def Union(x,y):
    Parent[Find_Set(y)] = Find_Set(x)

TC = int(input())
for tc in range(1, TC+1):
    N, M = map(int, input().split())
    Parent = [0]*(N+1)

    for i in range(1, N+1):
        Parent[i] = i

    Init_Data = list(map(int, input().split()))
    for i in range(M):
        start = Init_Data[2*i]
        end = Init_Data[2*i+1]
        Union(start, end)

    # print(Parent)

    result = []
    for i in range(len(Parent)):
        result.append(Find_Set(i))

    print('#%d %d'%(tc, len(set(result))-1))

Comments