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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom