728x90
반응형
https://www.acmicpc.net/problem/1260
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
int n, v;
int map[1001][1001];
int visit[1001];
void reset() {
for (int i = 1; i <= n; i++) {
visit[i] = 0;
}
}
void dfs() {
stack<int> s;
s.push(v);
while (!s.empty()) {
int node = s.top();
s.pop();
if(!visit[node]) cout << node << " ";
visit[node] = 1;
for (int i = n; i > 0; i--) {
if (!visit[i] && map[node][i] == 1) {
s.push(i);
}
}
}
cout << endl;
}
void bfs() {
visit[v] = 1;
queue<int> q;
q.push(v);
while (!q.empty()) {
int node = q.front();
cout << node << " ";
q.pop();
for (int i = 1; i <= n; i++) {
if (!visit[i] && map[node][i] == 1) {
q.push(i);
visit[i] = 1;
}
}
}
cout << endl;
}
int main() {
int m, n1, n2;
cin >> n >> m >> v;
for (int i = 0; i < m; i++) {
cin >> n1 >> n2;
map[n1][n2] = map[n2][n1] = 1;
}
dfs();
reset();
bfs();
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 1966번 프린터 큐 (C++) (0) | 2021.11.03 |
---|---|
[BOJ] 4963번 섬의 개수 (C++) (0) | 2021.11.03 |
[BOJ] 1012번 유기농 배추 (C++) (0) | 2021.11.02 |
[BOJ] 10867번 중복 빼고 정렬하기 (C++) (0) | 2021.11.02 |
[BOJ] 2606번 바이러스 (C++) (0) | 2021.11.01 |