[백준]1260 dfs와 bfs
문제 : https://www.acmicpc.net/problem/1260 [출처 : 백준 홈페이지]
풀이 : 특별한 것 없이 DFS, BFS를 구현하였습니다.
코드 : https://github.com/cksgus/algorithm/blob/master/baekjoon/c%2B%2B/1260(dfs%2Cbfs).cpp
x
using namespace std;
int N, M, V;
vector<int> v[1001];
bool visit[1000];
void dfs(int start)
{
visit[start] = true;
cout << start << " ";
for (int i = 0; i < v[start].size(); i++)
{
if (!visit[v[start][i]])
{
visit[v[start][i]] = true;
dfs(v[start][i]);
}
}
}
void bfs(int start)
{
queue<int> q;
q.push(start);
visit[start] = true;
while (!q.empty())
{
int value = q.front();
cout << value << " ";
q.pop();
int size = v[value].size();
for (int i = 0; i < size; i++)
{
if (!visit[v[value][i]])
{
visit[v[value][i]] = true;
q.push(v[value][i]);
}
}
}
}
int main(void)
{
cin >> N >> M >> V;
for (int m = 0; m < M; m++)
{
int n1, n2;
cin >> n1 >> n2;
v[n1].push_back(n2);
v[n2].push_back(n1);
}
for (int n = 1; n <= N; n++)
sort(v[n].begin(), v[n].end());
dfs(V);
for (int i = 0; i <= N; i++)
visit[i] = false;
cout << endl;
bfs(V);
cout << endl;
return 0;
}
'공부 > 알고리즘' 카테고리의 다른 글
7569 토마토 (0) | 2018.01.14 |
---|---|
7576 토마토 (0) | 2018.01.14 |
14891 톱니바퀴 (0) | 2018.01.11 |
6593 - 상범빌딩 (0) | 2017.12.31 |
백준 14620 - 꽃길 (0) | 2017.12.29 |