[BOJ 1260] DFS์ BFS
1. ๋ฌธ์ : Link
dfs ์ bfs ๋ฌป๋ ๋ฌธ์
2. ํ์ด
์ด์ ์ฌ ๊ฐ์ด ์กํ๋ค (2023.04.07)
link[i][j] = link [j][i] = 1 (์ฐ๊ฒฐ๋ ์ ์ด ์๋ค๊ณ ํ์ํ๋๊ฒ ์ค์)
* E๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋ !
* ์ฐ๊ฒฐ๋ ๊ฐ์ ์ค ๋ค์ ์ซ์๊ฐ ์์ ๊ฒ ๋ถํฐ ํ์ํด์ผํ๊ธฐ ๋๋ฌธ
3. ์ฝ๋
package baekjoon;
import java.io.IOException;
import java.util.*;
public class Main {
//ํจ์์์ ์ฌ์ฉํ ๋ณ์๋ค
static int[][] link; //๊ฐ์ ์ฐ๊ฒฐ์ํ
static boolean[] visited; //ํ์ธ ์ฌ๋ถ
static int V; //์ ์ ๊ฐ์
static int E; //๊ฐ์ ๊ฐ์
static int start; //์์์ ์
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
V = sc.nextInt();
E = sc.nextInt();
start = sc.nextInt();
link = new int[1001][1001]; //์ขํ๋ฅผ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ธฐ ์ํด +1ํด์ ์ ์ธ
visited = new boolean[1001]; //์ด๊ธฐ๊ฐ False
//๊ฐ์ ์ฐ๊ฒฐ์ํ ์ ์ฅ
for(int i = 0; i < E; i++) {
int x = sc.nextInt();
int y = sc.nextInt();
link[x][y] = link[y][x] = 1;
}
dfs(start); //dfsํธ์ถ
visited = new boolean[1001]; //ํ์ธ์ํ ์ด๊ธฐํ
System.out.println(); //์ค๋ฐ๊ฟ
bfs(); //bfsํธ์ถ
}
//์์์ ์ ๋ณ์๋ก ๋ฐ์ ํ์ธ, ์ถ๋ ฅ ํ ๋ค์ ์ฐ๊ฒฐ์ ์ ์ฐพ์ ์์์ ์ ๋ณ๊ฒฝํ์ฌ ์ฌํธ์ถ
public static void dfs(int cur) {
visited[cur] = true;
System.out.print(cur + " ");
for(int j = 1; j <= V; j++) {
if(link[cur][j] == 1 && !visited[j]) {
dfs(j);
}
}
}
public static void bfs() {
Queue<Integer> queue = new LinkedList<Integer>();
queue.offer(start);
visited[start] = true;
System.out.print(start + " ");
while(!queue.isEmpty()) {
int cur = queue.poll();
for(int j = 1; j <= V; j++) {
if(link[cur][j] == 1 && !visited[j]) {
queue.offer(j);
visited[j] = true;
System.out.print(j + " ");
}
}
}
}
}
'๐ป Coding Problems Solving > DFS | BFS | Backtracking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ํผ๋ก๋ (์๋ฐ java) (0) | 2023.03.01 |
---|---|
[BOJ 1303] ์ ์-์ ํฌ (0) | 2022.07.04 |
[BOJ 17070] ํ์ดํ ์ฎ๊ธฐ๊ธฐ1 (java) (0) | 2022.07.01 |
[BOJ 2667] ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2022.06.29 |
[BOJ 14888] ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (0) | 2022.06.25 |
์ต๊ทผ๋๊ธ