일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Algorithm
- mobx
- Backtracking
- BOJ
- JavaScript
- Java
- framework
- 연습문제
- 웹프로그래밍
- Vue
- 우아한테크캠프
- 백준
- 프레임워크
- TypeScript
- DFS
- Database
- 우아한형제들
- react
- 알고리즘
- SQL
- Vue.js
- 데이터베이스
- 단위테스트
- 탐색알고리즘
- JPA
- BFS
- Spring
- springboot
- BAEKJOON
- codeground
- Today
- Total
설모의 기록
[백준 1260] DFS 와 BFS 본문
이 문제는 dfs 와 bfs 두 방식을 이용해 그래프 탐색 결과를 출력하는 문제입니다. 단 방문할 때 낮은 정점 순으로 방문을 해야 합니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, V; static int[][] graph; static int[] dx = { 0, -1, 0, 1 }, dy = { 1, 0, -1, 0 }; static int[] visit; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); V = Integer.parseInt(st.nextToken()); graph = new int[N + 1][N + 1]; visit = new int[N + 1]; for (int i = 1; i <= M; i++) { st = new StringTokenizer(br.readLine()); int num1 = Integer.parseInt(st.nextToken()); int num2 = Integer.parseInt(st.nextToken()); graph[num1][num2] = graph[num2][num1] = 1; } dfs(V); bfs(); } public static void dfs(int index) { visit[index] = 1; System.out.print(index + " "); for (int i = 1; i <= N; i++) { if (visit[i] != 1 && graph[index][i] == 1) { dfs(i); } } } public static void bfs() { Queue<Integer> q = new LinkedList<>(); visit = new int[N + 1]; int vertex; q.add(V); visit[V] = 1; System.out.print("\n" + V + " "); while (!q.isEmpty()) { vertex = q.poll(); for (int i = 1; i <= N; i++) { if (visit[i] != 1 && graph[vertex][i] == 1) { q.offer(i); visit[i] = 1; System.out.print(i + " "); } } } } }
'알고리즘' 카테고리의 다른 글
[백준 1003] 피보나치 함수 (0) | 2018.01.01 |
---|---|
[백준 11866] 조세퍼스 문제 (0) | 2017.12.20 |
[백준 1966] 프린터 큐 (0) | 2017.12.20 |
[백준 1753] 최단경로 (0) | 2017.12.14 |
[백준 11559] Puyo Puyo (0) | 2017.12.11 |