https://www.acmicpc.net/problem/1707
🌕 최종코드
import java.io.*;
import java.util.*;
public class Main {
static int v, e;
static ArrayList<Integer>[] al;
static int visit[];
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stz = new StringTokenizer(br.readLine());
int t = Integer.parseInt(stz.nextToken());
for(int tc = 0; tc < t; tc++) {
stz = new StringTokenizer(br.readLine());
v = Integer.parseInt(stz.nextToken());
e = Integer.parseInt(stz.nextToken());
visit = new int[v+1];
al = new ArrayList[v+1];
for(int i = 0; i <= v; i++)
al[i] = new ArrayList<Integer>();
for(int i = 0; i < e; i++) {
stz = new StringTokenizer(br.readLine());
int p1 = Integer.parseInt(stz.nextToken());
int p2 = Integer.parseInt(stz.nextToken());
al[p1].add(p2);
al[p2].add(p1);
}
grouping();
}
}
public static void grouping() {
Queue<Integer> q = new LinkedList<Integer>();
for(int i = 1; i <= v; i++) {
if(visit[i] == 0) {
q.add(i);
visit[i] = 1;
}
while(!q.isEmpty()) {
int now = q.poll();
for(int j = 0; j < al[now].size(); j++) {
if(visit[al[now].get(j)] == 0) {
q.add(al[now].get(j));
}
if(visit[al[now].get(j)] == visit[now]) {
System.out.println("NO");
return;
}
if(visit[now] == 1 && visit[al[now].get(j)] == 0)
visit[al[now].get(j)] = 2;
else if(visit[now] == 2 && visit[al[now].get(j)] == 0)
visit[al[now].get(j)] = 1;
}
}
}
System.out.println("YES");
}
}
'항해' 카테고리의 다른 글
[DAY47] 99클럽 코딩테스트 JAVA 백준 빙산 2573번 (0) | 2025.02.03 |
---|---|
[DAY46] 99클럽 코딩테스트 JAVA 백준 빙산 2573번 (1) | 2025.01.24 |
[DAY44] 99클럽 코딩테스트 JAVA 백준 단지번호붙이기 2667번 (DFS/BFS) +런타임 에러 (1) | 2025.01.22 |
[DAY43] 99클럽 코딩테스트 JAVA 백준 숨바꼭질 1697번 (1) | 2025.01.21 |
[DAY42] 99클럽 코딩테스트 JAVA 백준 DFS와 BFS 1260번 (1) | 2025.01.20 |