BOJ 11724 연결 요소의 개수 c++
백준 11724 연결 요소의 개수 c++
#include <bits/stdc++.h>
using namespace std;
int v, e;
// v는 정점의 개수, e는 간선의 개수.
vector<int> adj[1005];
int vis[1005];
int dfs() {
int ret = 0;
stack<int> s;
for (int i = 1; i <= v; i++) {
if (vis[i]) continue;
ret++;
s.push(i);
vis[i] = true;
while (!s.empty()) {
int cur = s.top();
s.pop();
for (int j = 0; j < adj[cur].size(); j++) {
int nxt = adj[cur][j];
if (vis[nxt]) continue;
s.push(nxt);
vis[nxt] = true;
}
}
}
return ret;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> v >> e;
int x, y;
while (e--) {
cin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
cout << dfs();
return 0;
}
분류 : 그래프 - BFS, DFS
'Algorithm' 카테고리의 다른 글
BOJ 1406 c++ 에디터 (0) | 2020.07.27 |
---|---|
BOJ 1260 c++ BFS와 DFS (0) | 2020.07.22 |
C++ 이진 탐색 STL binary_search, upper_bound, lower_bound (0) | 2020.07.18 |
BOJ 10816 c++ (0) | 2020.07.18 |
BOJ 1920 c++ (0) | 2020.07.18 |
최근댓글