Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 웹개발
- 전공자따라잡기
- 바인딩
- 11724
- Java
- n진법게임
- 링킹
- 인오더
- 1707
- 이분그래프
- 알고리즘
- JAVA_HOME
- 프로그래머스
- 동적계획법
- 이진트리
- 피보나치
- 순회
- 그래프
- 완전이진트리
- DynamicProgramming
- 포스트오더
- 백준
- 9093
- Bottom Up
- 포화이진트리
- dfs
- 연결요소
- 자바
- 도커
- BFS
Archives
- Today
- Total
물음표 살인마
[백준1707] 문제를 통해 이분 그래프 이해하기 본문

이분그래프란?

위의 그림과 같이 A(검정)/B(회색)로 나눌 수 있는 그래프
A에 포함된 정점끼리 연결된 간선이 없음
B에 포함된 정점끼리 연결된 간선이 없음
A-B 서로를 연결하는 간선만 존재
EX. 수강신청 시 학생과 과목을 연결, 소유물 표현 시 사람과 사물을 연결할 때 등 쓰인다
-----
이분그래프 관련 문제
https://www.acmicpc.net/problem/1707
1707번: 이분 그래프
입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에
www.acmicpc.net
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
//0은 체크안함, 1/2로 속한 그룹을 체크한다.
static int[] checked;
static ArrayList<Integer>[] g;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
for (int i = 0; i < k; i++) {
int v = sc.nextInt();
int e = sc.nextInt();
checked = new int[v+1];
g = new ArrayList[v+1];
for (int j = 1; j <= v; j++) {
g[j] = new ArrayList<Integer>();
}
for (int j = 0; j < e; j++) {
int num1 = sc.nextInt();
int num2 = sc.nextInt();
g[num1].add(num2);
g[num2].add(num1);
}
boolean result = true;
for (int j = 1; j <= v; j++) {
if (checked[j] == 0) {
if(!dfs(j, 1)) result = false;
}
}
System.out.println(result?"YES":"NO");
}
}
static boolean dfs(int node, int c) {
checked[node] = c;
for (int i = 0; i < g[node].size(); i++) {
int next = g[node].get(i);
if(checked[next] == 0){
if(dfs(next, 3 - c) == false){
return false;
}
} else if (checked[node] == checked[next]) {
return false;
}
}
return true;
}
}
'개발지식 > Algorithm' 카테고리의 다른 글
프로그래머스 N진수 게임으로 알아보는 자바 진법 변환 (0) | 2023.04.19 |
---|---|
트리 자료구조 이해하기 (0) | 2023.01.31 |
[백준11724] 연결 요소 - Connected Component란? (0) | 2023.01.10 |
[백준1260] DFS와 BFS 문제를 통해 그래프 탐색 이해하기 (0) | 2023.01.10 |
[백준13023] ABCDE - 그래프 표현 연습 (0) | 2023.01.07 |
Comments