본문 바로가기

백준

[백준] 1707 이분 그래프 [자바]

 


https://jellyinghead.tistory.com/14

 

[백준 1707] 이분 그래프 (자바)

https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그

jellyinghead.tistory.com

 


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
	static ArrayList<Integer>[] list;
	static int[] visit;
	static int V;
 	public static void main(String arg[]) throws IOException {
 		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 		int T = Integer.parseInt(br.readLine());
 		while(T --> 0) {
 			StringTokenizer st = new StringTokenizer(br.readLine());
 			V = Integer.parseInt(st.nextToken());
 			int E = Integer.parseInt(st.nextToken());
 			list = new ArrayList[V+1];
 			for(int i = 0; i <= V; i++) {
 				list[i] = new ArrayList<Integer>();
 			}
 			visit = new int[V+1];
 			for(int i = 0; i < E; i++) {
 				st = new StringTokenizer(br.readLine());
 				int a = Integer.parseInt(st.nextToken());
 				int b = Integer.parseInt(st.nextToken());
 				list[a].add(b);
 				list[b].add(a);
 			}
 			if(bfs()) {
 				System.out.println("YES");
 			}
 			else {
 				System.out.println("NO");
 			}
 		}
 	}
 	static boolean bfs() {
 		LinkedList<Integer> que = new LinkedList<>();
 		for(int i = 1; i <= V; i++) {
 			if(visit[i] == 0) {
 				que.add(i);
 				visit[i] = 1; //초
 			}
 			while(!que.isEmpty()) {
 				int now = que.poll();
 				for(int j = 0; j < list[now].size(); j++) {
 					if(visit[list[now].get(j)] == 0) {
 						que.add(list[now].get(j));
 					}
 					if(visit[list[now].get(j)] == visit[now]) {
 						return false;
 					}
 					if(visit[now] == 1 && visit[list[now].get(j)] == 0) {
 						visit[list[now].get(j)] = 2;
 					}
 					else if(visit[now] == 2 && visit[list[now].get(j)] == 0) {
 						visit[list[now].get(j)] = 1;
 					}
 				}
 			}
 		}
 		return true;
 	}
}

'백준' 카테고리의 다른 글

[백준] 1107 리모컨 [자바]  (0) 2022.04.09
[백준] 1074 Z [자바]  (0) 2022.03.17
[백준] 4195 친구 네트워크 [자바]  (0) 2022.03.14
[백준] 1033 칵테일 [자바]  (0) 2022.03.03
[백준] 9742 순열 [자바]  (0) 2022.03.02