From 6b0d4cd83bf11b13ad307567269b67c07285cb49 Mon Sep 17 00:00:00 2001
From: Youn-Rha <86452280+Youn-Rha@users.noreply.github.com>
Date: Sun, 27 Oct 2024 22:22:58 +0900
Subject: [PATCH] =?UTF-8?q?[Gold=20V]=20Title:=20=EC=A7=91=ED=95=A9?=
=?UTF-8?q?=EC=9D=98=20=ED=91=9C=ED=98=84,=20Time:=20364=20ms,=20Memory:?=
=?UTF-8?q?=2081488=20KB=20-BaekjoonHub?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../README.md" | 30 +++++++++++++
...30\342\200\205\355\221\234\355\230\204.py" | 45 +++++++++++++++++++
2 files changed, 75 insertions(+)
create mode 100644 "\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/README.md"
create mode 100644 "\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204.py"
diff --git "a/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/README.md" "b/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/README.md"
new file mode 100644
index 0000000..80c2b57
--- /dev/null
+++ "b/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/README.md"
@@ -0,0 +1,30 @@
+# [Gold V] 집합의 표현 - 1717
+
+[문제 링크](https://www.acmicpc.net/problem/1717)
+
+### 성능 요약
+
+메모리: 81488 KB, 시간: 364 ms
+
+### 분류
+
+자료 구조, 분리 집합
+
+### 제출 일자
+
+2024년 10월 27일 22:21:35
+
+### 문제 설명
+
+
초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다.
+
+집합을 표현하는 프로그램을 작성하시오.
+
+### 입력
+
+ 첫째 줄에 $n$, $m$이 주어진다. $m$은 입력으로 주어지는 연산의 개수이다. 다음 $m$개의 줄에는 각각의 연산이 주어진다. 합집합은 $0$ $a$ $b$의 형태로 입력이 주어진다. 이는 $a$가 포함되어 있는 집합과, $b$가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 $1$ $a$ $b$의 형태로 입력이 주어진다. 이는 $a$와 $b$가 같은 집합에 포함되어 있는지를 확인하는 연산이다.
+
+### 출력
+
+ 1로 시작하는 입력에 대해서 $a$와 $b$가 같은 집합에 포함되어 있으면 "YES
" 또는 "yes
"를, 그렇지 않다면 "NO
" 또는 "no
"를 한 줄에 하나씩 출력한다.
+
diff --git "a/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204.py" "b/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204.py"
new file mode 100644
index 0000000..d37947d
--- /dev/null
+++ "b/\353\260\261\354\244\200/Gold/1717.\342\200\205\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204/\354\247\221\355\225\251\354\235\230\342\200\205\355\221\234\355\230\204.py"
@@ -0,0 +1,45 @@
+import sys, math
+
+# sys.setrecursionlimit(100000)
+
+def input():
+ return sys.stdin.readline()
+
+
+# main
+if __name__ == "__main__":
+ # WQU
+ def root(i):
+ while i != ids[i]:
+ i = ids[i]
+ return i
+
+ def connected(a, b):
+ return root(a) == root(b)
+
+ def union(p, q):
+ a, b = root(p), root(q)
+ if a == b:
+ return
+ if size[a] <= size[b]:
+ ids[a] = b
+ size[b] += size[a]
+ else:
+ ids[b] = a
+ size[a] += size[b]
+
+
+
+
+ n, m = map(int, input().split())
+ ids = [i for i in range(n + 1)]
+ size = [1 for _ in range(n + 1)]
+ for i in range(m):
+ o, a, b = map(int, input().split())
+ if o:
+ if connected(a, b):
+ print("YES")
+ else:
+ print("NO")
+ else:
+ union(a, b)
\ No newline at end of file