시간초과 및 메모리초과 때문에 10트정도 했다.
원소를 1개씩 가지고 있는 집합들을 합치고 어떤 원소가 이미 같은 집합으로 합쳐져있는지 확인하는
Union-Find구현문제이다.
import sys
input = sys.stdin.readline
sys.setrecursionlimit(100000)
n,m = map(int,input().split())
parent = [i for i in range(n+1)]
def Union(a,b):
a = Find(a)
b = Find(b)
if a>b:
parent[a] = b
else:
parent[b] = a
def Find(u):
if parent[u]==u:
return u
parent[u] = Find(parent[u])
return parent[u]
for _ in range(m):
flag, x, y = map(int,input().split())
if flag:
if Find(x) == Find(y):
print("YES")
else:
print("NO")
else:
Union(x,y)
재귀 사용시 런타임에러, 시간초과, 메모리초과 나면
import sys
input = sys.stdin.readline
sys.setrecursionlimit(100000)
무조건 넣어보기... 코드는 1트했는데 저거때매 삽질함.
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 2529 부등호 (0) | 2021.07.16 |
---|---|
[백준][PYTHON] 15649 15650 N과 M (1),(2) (0) | 2021.07.14 |
[백준][Python] 13398 연속합 2 (0) | 2021.07.11 |
[백준][Python] 10775: 공항 (0) | 2021.07.10 |
백준 11005 진법변환 파이썬 (0) | 2021.06.29 |