# 문제 링크
# 제출 코드
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
vector<int> a[1001];
bool check[1001];
void dfs(int node) {
check[node] = true;
cout << node << ' ';
for (int i=0; i<a[node].size(); i++) {
int next = a[node][i];
if (check[next] == false) {
dfs(next);
}
}
}
void bfs(int start) {
queue<int> q;
memset(check,false,sizeof(check));
check[start] = true;
q.push(start);
while (!q.empty()) {
int node = q.front();
q.pop();
cout << node << ' ';
for (int i=0; i<a[node].size(); i++) {
int next = a[node][i];
if (check[next] == false) {
check[next] = true;
q.push(next);
}
}
}
}
int n, m, start;
void Input(){
cin >> n >> m >> start;
for(int i =0; i<m; i++){
int u, v;
cin >> u >> v ;
a[u].push_back(v);
a[v].push_back(u);
}
for(int i = 1; i<=n; i++){
sort(a[i].begin(), a[i].end());
}
}
int main(){
Input();
dfs(start);
cout << '\n';
bfs(start);
return 0;
}
반응형
'Computer Science&Engineering > 코딩테스트' 카테고리의 다른 글
[백준 15649] N과 M (1) (0) | 2021.03.13 |
---|---|
[백준 10974] 모든 순열 (0) | 2021.03.13 |
[백준 9095] 1, 2, 3 더하기 반복문 풀이, 재귀적 풀이 (0) | 2021.03.07 |
[백준 1406] 에디터 (0) | 2021.02.24 |
[백준 10799] 쇠막대기 (0) | 2021.02.23 |