메이쁘

(JAVA) 백준 1717번 : 집합의 표현 --- [Disjoint-Set] 본문

Algorithm/Baekjoon

(JAVA) 백준 1717번 : 집합의 표현 --- [Disjoint-Set]

메이쁘 2020. 9. 25. 23:09

www.acmicpc.net/problem/1717

 

1717번: 집합의 표현

첫째 줄에 n(1≤n≤1,000,000), m(1≤m≤100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 ��

www.acmicpc.net

 

안녕하세요.

 

Disjoint-Set 중 Union-Find 알고리즘을 사용한 문제입니다.

 

이 문제는 기본적인 문제입니다. (저는 한 번 틀렸죠.. 실수해서)

 

 

크게 어려울 건 없습니다.

 

입력받을 때

 

  -  맨 앞 숫자가 0이면 : union(a, b)

  -  맨 앞 숫자가 1이면 : isSameParent(a, b) -> 부모가 같으면 YES /// 다르면 NO 

 

 

이 때, 메모리 효율성과 시간 단축을 위해

 

a와 b가 같은 경우에 대한 예외 처리까지 진행합니다.

 

a == b 이면 어차피 부모 값 또한 같겠죠?

a == b 이면 Union 의미없죠?

 

함수 호출을 줄이려는 것입니다!

 

 

 

이상입니다.

감사합니다!

 

 

소스코드


Comments