해결방법서로소 집합 / 랭크 기반 유니온(Rank Based Union)rank → 친구 네크워크의 크기를 나타내며, 친구 네트워크의 큰 쪽에 편입시킨다.rank 기반 union을 사용하므로 union시 O(1) → 상수시간에 가깝게 동작한다.따라서 O(N)=O(F)의 시간복잡도에 문제를 해결할 수 있다. 코드import java.util.*;import java.io.*;// 1668ms// union 연산에서 랭크 기반 union을 사용하므로 O(1)에 가깝게 동작한다,// 따라서 대략 O(N)=O(F)public class Main_4195_G2_친구네트워크_서로소집합 { static final int N = 200005; static int F; // F: 친구 관계의 수 stat..