배경 Union Find 관련 문제를 풀던중 있던 일이다. C언어로 작성한 Find 함수는 아래와 같았다. int Find(int x){ if (x == parent[x]){ return; } return parent[x] = Find(parent[x]); } 이 함수를 python으로 그대로 옮긴 후 실행해 보니 def find(x): if x == parent[x]: return x else: return parent[x] = find(parent[x]) smantic error도 아니고 syntax error 라니!! c언어는 되는데 python은 안되는 이유가 궁금해졌다. Python Document 확인 그래서 일단 python document를 살펴보았는데 문제가 되는 부분이 여기인 것같다. ..
union find 문제를 풀어보자! https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net c 언어로 풀어봤다 # #include # #include int parent[1000000]; int Find(int x){ if (x == parent[x]){ return x; } else{ return parent[x] = Find(parent[x]); } } void Union(int x, int y){ x = F..