From 2b44f0856aa45f8ce7723c668f3af6027983253e Mon Sep 17 00:00:00 2001 From: heerucan Date: Sun, 27 Mar 2022 19:00:12 +0900 Subject: [PATCH] =?UTF-8?q?[Add]=20=EC=84=9C=EB=A1=9C=EC=86=8C=20=EC=95=8C?= =?UTF-8?q?=EA=B3=A0=EB=A6=AC=EC=A6=98=20(#8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\352\263\240\353\246\254\354\246\230.py" | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 "CodingTest/CH10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\354\204\234\353\241\234\354\206\214\354\225\214\352\263\240\353\246\254\354\246\230.py" diff --git "a/CodingTest/CH10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\354\204\234\353\241\234\354\206\214\354\225\214\352\263\240\353\246\254\354\246\230.py" "b/CodingTest/CH10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\354\204\234\353\241\234\354\206\214\354\225\214\352\263\240\353\246\254\354\246\230.py" new file mode 100644 index 0000000..8849c14 --- /dev/null +++ "b/CodingTest/CH10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\354\204\234\353\241\234\354\206\214\354\225\214\352\263\240\353\246\254\354\246\230.py" @@ -0,0 +1,38 @@ +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 = [0]*(v+1) #부모 테이블 초기화 + +# 부모 테이블 상에서, 부모를 자기 자신으로 초기화 +for i in range(1, v+1): + parent[i] = i + +# union 연산을 각각 수행 +for i 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=' ') \ No newline at end of file