백준 1260 DFS와 BFS JAVA
package baekjoon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Fs_1260 {
public static boolean [] visited;
public static int[][] graph;
public static int N;
public static int M;
public static int V;
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];
visited=new boolean[N+1];
for(int i=0;i<visited.length;i++) {
visited[i]=false;
}
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);
dfs(V);
System.out.print("\n");
Arrays.fill(visited, false);
bfs(V);
}
public static void dfs(int v) {
visited[v]=true;
System.out.print(v+" ");
for(int i=1;i<N+1;i++) {
if(graph[v][i]==1&&visited[i]==false) {
dfs(i);
}
}
}
public static 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;i++) {
if(graph[r][i]==1&&visited[i]==false) {
queue.add(i);
visited[i]=true;
}
}
}
}
}
참고 : https://bbangson.tistory.com/42
참고 : https://scshim.tistory.com/241
Author And Source
이 문제에 관하여(백준 1260 DFS와 BFS JAVA), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dovnaldisn/백준-1260-DFS와-BFS-JAVA저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)