4195번 - 친구 네트워크
우선 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 연산의 숫자가 많아서 시간초과가 나는것 같은데 어떻게 해결하면 좋을지 고민중입니다.
댓글을 작성하려면 로그인해야 합니다.
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 연산의 숫자가 많아서 시간초과가 나는것 같은데 어떻게 해결하면 좋을지 고민중입니다.