Skip to content

Instantly share code, notes, and snippets.

@niklasjang
Created August 17, 2020 02:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save niklasjang/073e2de4efe046636fcdb5fadfe449d7 to your computer and use it in GitHub Desktop.
Save niklasjang/073e2de4efe046636fcdb5fadfe449d7 to your computer and use it in GitHub Desktop.
[PS][java][완전탐색][DFS]/[DFS와BFS]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
static int n,m,v,s,e;
static ArrayList<Integer>[] map;
static boolean[] visit;
static StringBuilder sb;
static Queue<Integer> q;
static void bfs(int v, StringBuilder sb){
visit[v] = true;
q.add(v);
while(!q.isEmpty()){
int curr= q.poll();
sb.append(curr).append(" ");
for(int i=0;i<map[curr].size();i++){
int next =map[curr].get(i);
if(visit[next])continue;
visit[next]= true;
q.add(next);
}
}
}
static void dfs(int v, StringBuilder sb){
visit[v] = true;
sb.append(v).append(" ");
for(int i=0; i<map[v].size(); i++){
int next = map[v].get(i);
if(visit[next]) continue;
dfs(next, sb);
}
}
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(buf.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
v = Integer.parseInt(st.nextToken());
map = new ArrayList[n+1];
q = new LinkedList<>();
for(int i=1; i<=n; i++){
map[i] = new ArrayList<>();
}
for(int i=1;i<=m; i++){
st = new StringTokenizer(buf.readLine());
s = Integer.parseInt(st.nextToken());
e = Integer.parseInt(st.nextToken());
map[s].add(e);
map[e].add(s);
}
for(int i=1; i<=n;i++){
Collections.sort(map[i]);
}
sb = new StringBuilder();
visit = new boolean[n+1];
dfs(v,sb);
System.out.println(sb.toString());
sb = new StringBuilder();
visit = new boolean[n+1];
bfs(v,sb);
System.out.println(sb.toString());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment