λ°μν
λ¬Έμ
https://www.acmicpc.net/problem/1260
1260λ²: DFSμ BFS
첫째 μ€μ μ μ μ κ°μ N(1 ≤ N ≤ 1,000), κ°μ μ κ°μ M(1 ≤ M ≤ 10,000), νμμ μμν μ μ μ λ²νΈ Vκ° μ£Όμ΄μ§λ€. λ€μ Mκ°μ μ€μλ κ°μ μ΄ μ°κ²°νλ λ μ μ μ λ²νΈκ° μ£Όμ΄μ§λ€. μ΄λ€ λ μ μ μ¬
www.acmicpc.net
νμ΄
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
public static StringBuilder sb = new StringBuilder();
public static boolean[] visited; // λ°©λ¬Έ μ¬λΆ
public static int[][] graph;
public static int N; // μ μ μ κ°μ (λκ·ΈλΌλ―Έ)
public static int M; // κ°μ μ κ°μ (μ§μ )
public static int V; // νμ μμ λ²νΈ
/**
* κΉμ΄ μ°μ νμ
*
* @param v
*/
public void dfs(int v) {
visited[v] = true;
System.out.print(v + " ");
for (int i = 0; i < N + 1; i++) {
if (graph[v][i] == 1 && visited[i] == false) {
dfs(i);
}
}
}
/**
* λλΉ μ°μ νμ
*
* @param v
*/
public void bfs(int v) {
Queue<Integer> queue = new LinkedList<>();
queue.add(v);
visited[v] = true;
while (!queue.isEmpty()) {
int r = queue.poll();
System.out.print(r + " ");
for (int i = 1; i < N + 1; i++) {
if (graph[r][i] == 1 && visited[i] == false) {
queue.add(i);
visited[i] = true;
}
}
}
}
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Main m = new Main();
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
V = Integer.parseInt(st.nextToken());
graph = new int[N + 1][N + 1];
visited = new boolean[N + 1];
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
graph[a][b] = 1;
graph[b][a] = 1;
}
Arrays.fill(visited, false);
m.dfs(V);
System.out.println("");
Arrays.fill(visited, false);
m.bfs(V);
bw.flush();
bw.close();
}
}
μ λ΅
λ°μν
'π°ππππππππ > π±πππππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/Java] κ°μ₯ κ°κΉμ΄ μΈ μ¬λμ μ¬λ¦¬μ 거리 20529 (0) | 2023.12.23 |
---|---|
[λ°±μ€/Java] μ κΈ°λ λ°°μΆ 1012 (1) | 2023.12.19 |
[λ°±μ€/Java] μ€ν μμ΄ 1874 (0) | 2023.12.13 |
[λ°±μ€/Java] μΉ΄λ λκΈ° 18115 (0) | 2023.12.11 |
[λ°±μ€/Java] μνκ°λ μ 1436 (0) | 2023.12.07 |