반응형
https://www.acmicpc.net/problem/1260
import java.io.*;
import java.util.*;
public class Main {
static int[][] arr;
static boolean[] check;
static Queue<Integer> qu = new LinkedList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str =br.readLine().split(" ");
int N = Integer.parseInt(str[0]); //정점의 개수
int M = Integer.parseInt(str[1]); //간선의 개수
int V = Integer.parseInt(str[2]); //탐색 시작한 정점의 번호
arr= new int[N+1][N+1];
check=new boolean [N+1];
for(int i =0;i<M;i++) {
str=br.readLine().split(" ");
int r=Integer.parseInt(str[0]);
int c=Integer.parseInt(str[1]);
arr[r][c]=1;
arr[c][r]=1;
}
dfs(V); //깊이
sb.append("\n");
check=new boolean [N+1];
bfs(V); //너비
System.out.println(sb);
}// main()
static void dfs(int k) {
if(check[k])
return;
check[k]=true;
sb.append(k+" ");
for(int i=0;i<arr[k].length;i++) {
if(arr[k][i]==1&&!check[i])
dfs(i);
}
}//dfs()
static void bfs(int k) {
qu.add(k);
check[k]=true;
while(!qu.isEmpty()) {
k=qu.poll();
sb.append(k+" ");
for(int i=0;i<arr[k].length;i++) {
if(arr[k][i]==1&&!check[i]) {
qu.add(i);
check[i]=true;
}
}
}
}//bfs()
}// class Main
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준 11053 : 가장 긴 증가하는 수열 _자바 Java (0) | 2023.01.21 |
---|---|
백준 1012 : 유기농 배추 _자바 Java (0) | 2023.01.20 |
백준 1004 : 어린 왕자 _자바 Java (0) | 2023.01.19 |
백준 9375 : 패션왕 신해빈 _자바 Java (2) | 2023.01.19 |
백준 13305 : 주유소 _자바 Java (0) | 2023.01.19 |
댓글