[백준 1260] DFS와 BFS (실버 3) 문제 풀이- 자바 Java
2022. 12. 31. 00:50ㆍ네카라쿠배 취준반 - 프로그래머스 문제 풀이
0. 자세한 설명은 YouTube 영상으로
- 개발자로 취직하기의 DFS 강의 : https://inf.run/MqJT
1. 풀이 코드
import java.util.*;
import java.io.*;
class Main {
final static int MAX = 1000 + 10;
static boolean graph[][];
static boolean visited[];
static ArrayList<Integer> queue;
static int N, M, V;
static void dfs(int idx) {
System.out.print(idx + " ");
visited[idx] = true;
for (int i = 1; i <= N; i++)
if (!visited[i] && graph[idx][i])
dfs(i);
}
static void bfs() {
queue = new ArrayList<>();
visited = new boolean[MAX];
queue.add(V);
visited[V] = true;
while (!queue.isEmpty()) {
int idx = queue.remove(0);
System.out.print(idx + " ");
for (int i = 1; i <= N; i++)
if (!visited[i] && graph[idx][i]) {
visited[i] = true;
queue.add(i);
}
}
}
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 boolean[MAX][MAX];
visited = new boolean[MAX];
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine(), " ");
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
graph[x][y] = graph[y][x] = true;
}
dfs(V);
System.out.println();
bfs();
}
}
'네카라쿠배 취준반 - 프로그래머스 문제 풀이' 카테고리의 다른 글
[백준 1012] 유기농 배추 (실버 3) 문제 풀이- 파이썬 python (2) | 2023.01.05 |
---|---|
[백준 2606] 바이러스 (실버 3) 문제 풀이- 자바 Java (0) | 2022.12.31 |
[백준 1260] DFS와 BFS (실버 3) 문제 풀이- 파이썬 python (0) | 2022.12.29 |
[백준 2449] 전구 문제 풀이- 자바 Java (0) | 2022.12.24 |
[백준 10870] 피보나치 수 5 문제 풀이- 파이썬 python (0) | 2022.12.22 |