🐸 문제 정보
🤖 알고리즘
유니온 파인드
⏱️ 풀이 시간
16.43m
📝 풀이
유니온 파인드의 정석같은 문제였다.
그래프가 연결되어있는지 찾아야하는데, 시간이 조금 걸렸던 이유는
마지막에 parent[a]와 parent[b]를 비교했다..
find(a)와 find(b)로 고쳐서 통과할 수 있었다.
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
def find(x):
if parent[x] != x:
parent[x] = find(parent[x])
return parent[x]
def union(a, b):
a = find(a)
b = find(b)
if a < b:
parent[b] = a
else:
parent[a] = b
for i in range(int(input().rstrip())):
n, k = int(input().rstrip()), int(input().rstrip())
parent = [i for i in range(n)]
for _ in range(k):
a, b = list(map(int, input().rstrip().split()))
if find(a) != find(b): union(a, b)
print(f'Scenario {i + 1}:')
for _ in range(int(input().rstrip())):
a, b = list(map(int, input().rstrip().split()))
if find(a) == find(b):
print(1)
else:
print(0)
print()
'PS > 문제풀이' 카테고리의 다른 글
백준 2839 설탕 배달 Python (0) | 2024.02.12 |
---|---|
백준 22868 산책 (small) Python (1) | 2024.02.09 |
백준 17485 진우와 달 여행 (Large) Python (0) | 2024.02.09 |
백준 2503 숫자 야구 Python (0) | 2024.02.09 |
백준 2812 크게 만들기 Python (0) | 2024.02.08 |