[์ด์ทจ์ฝ”-๊ทธ๋ž˜ํ”„ ์ด๋ก ] ๊ฐœ์„ ๋œ ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ์Šค์ฝ”๋“œ / Python

๐Ÿ“š Problem Solving/์ด์ทจ์ฝ”

์ž…๋ ฅ ์˜ˆ์‹œ

6 4 # ๋…ธ๋“œ์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜

1 4 # ๋…ธ๋“œ์™€ ๋…ธ๋“œ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„

2 3

2 4

5 6

 

์ถœ๋ ฅ ์˜ˆ์‹œ

๊ฐ ์›์†Œ๊ฐ€ ์†ํ•œ ์ง‘ํ•ฉ: 1 1 1 1 5 5

๋ถ€๋ชจ ํ…Œ์ด๋ธ”: 1 1 1 1 5 5

 

import sys

input = sys.stdin.readline


def find_parent(parent, x):
    if parent[x] != x:
        parent[x] = find_parent(parent, parent[x])
    return parent[x]


def union_parent(parent, a, b):
    a = find_parent(parent, a)
    b = find_parent(parent, b)
    if a < b:
        parent[b] = a
    else:
        parent[a] = b


v, e = map(int, input().split())
parent = [i for i in range(v + 1)]

for _ in range(e):
    a, b = map(int, input().split())
    union_parent(parent, a, b)

print("๊ฐ ์›์†Œ๊ฐ€ ์†ํ•œ ์ง‘ํ•ฉ: ", end="")
for i in range(1, v + 1):
    print(find_parent(parent, i), end=" ")

print()

print("๋ถ€๋ชจ ํ…Œ์ด๋ธ”: ", end="")
for i in range(1, v + 1):
    print(parent[i], end=" ")