SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SWEA_3289 {
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static StringBuilder sb = new StringBuilder("");
static int parents[];
public static void main(String[] args) throws Exception {
int T = Integer.parseInt(in.readLine());
for (int tc = 1; tc <= T; tc++) {
st = new StringTokenizer(in.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
parents = new int[N+1];
make();
sb.append("#").append(tc).append(" ");
for (int i = 0; i < M; i++) {
st = new StringTokenizer(in.readLine(), " ");
int mode = Integer.parseInt(st.nextToken());
int pre = Integer.parseInt(st.nextToken());
int post = Integer.parseInt(st.nextToken());
if(mode == 0) {
unionSet(pre, post);
}else {
findEqualSet(pre, post);
}
}
sb.append("\n");
}
System.out.println(sb);
}
private static void findEqualSet(int pre, int post) {
if(findSet(pre) == findSet(post)) {
sb.append(1);
return;
}
sb.append(0);
}
private static void unionSet(int pre, int post) {
if(findSet(pre) == findSet(post)) return;
parents[findSet(post)] = findSet(pre);
}
private static int findSet(int a) {
if(parents[a] == a) return a;
return parents[a] = findSet(parents[a]);
}
private static void make() {
for (int i = 0; i < parents.length; i++) {
parents[i] = i;
}
}
}
'Algorithms > SW expert' 카테고리의 다른 글
[Java] 1228. [S/W 문제해결 기본] 8일차 - 암호문1 (0) | 2021.03.24 |
---|---|
[Java] 1204. [S/W문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2021.03.24 |
[Java] 1238. Contact (0) | 2021.03.16 |
[Java] 1247. 최적 경로 (0) | 2021.02.20 |
[Java] 1873. 상호의 배틀필드 (0) | 2021.02.04 |