barcelonamessi   7년 전

우선 union find를 하기위해서

U_F라는 클래스를 만들었고 여기서 노드에 해당하는 정보(index, value, name, count)를 저장합니다.

index는 배열에 저장되는 인덱스를 저장하고

value는 배열의 인덱스로 접근하면 얻는 값을 저장하고

name은 이름

count는 루트인경우 현재 모임의 노드 총 개수를 알려줍니다.

우선 name1, name2를 입력 받고


map에서 name1과 name2 가 있는지 찾아봅니다.


그 후에는 1. 둘다 있거나 2. name1만있거나 3. name2만 있거나 4. 둘다 없거나

이 경우에 따라 union을 해주고 

그 뒤에 0번인덱스가 포함된 모임의 개수를 찾아서 출력해줍니다.


저는 find 연산의 숫자가 많아서 시간초과가 나는것 같은데 어떻게 해결하면 좋을지 고민중입니다. 



댓글을 작성하려면 로그인해야 합니다.