์ฐ์ ๊ธฐ๋ก ๐ช
[๋ฐฑ์ค1260]DFS์ BFS(C++) ๋ณธ๋ฌธ
https://www.acmicpc.net/problem/1260
dfs/bfs๊ตฌํ
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
vector<int> edge[1001];
int check1[1001];
int check2[1001];
void dfs(int start) {
check1[start] = 1;
cout << start << " ";
for (int i = 0; i < edge[start].size(); i++) {
if (check1[edge[start][i]] == 0) {
dfs(edge[start][i]);
}
}
}
void bfs(int start) {
queue<int> q;
q.push(start);
check2[start] = 1;
while (!q.empty()) {
int cur = q.front();
q.pop();
cout << cur << " ";
for (int i = 0; i < edge[cur].size(); i++) {
if (check2[edge[cur][i]] == 0) {
q.push(edge[cur][i]);
check2[edge[cur][i]] = 1;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int N, M, S;
cin >> N >> M >> S;
while (M != 0) {
int a, b;
cin >> a >> b;
edge[a].push_back(b);
edge[b].push_back(a);
M--;
}
//์ ์ ๋ฒํธ ์์๊ฒ ๋ถํฐ ๋ฐฉ๋ฌธํ๋ฏ๋ก ์ ๋ ฌ
for (int i = 0; i < 1001; i++) {
sort(edge[i].begin(), edge[i].end());
}
dfs(S);
cout << "\n";
bfs(S);
}
'Problem Solving > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค1978]-์์ ์ฐพ๊ธฐ(C++) (0) | 2021.07.18 |
---|---|
[๋ฐฑ์ค2609]-์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์(C++)/์ ํด๋ฆฌ๋ ํธ์ ๋ฒ (0) | 2021.07.18 |
[๋ฐฑ์ค1012] ์ ๊ธฐ๋ ๋ฐฐ์ถ(C++) (0) | 2021.07.08 |
[๋ฐฑ์ค10989]-์ ์ ๋ ฌํ๊ธฐ 3(C++) (0) | 2021.06.23 |
[๋ฐฑ์ค2309] - ์ผ๊ณฑ๋์์ด(C++) (0) | 2021.01.11 |