https://www.acmicpc.net/problem/11724
간단하게 dfs나 bfs를 구현해 탐색하면 해결할 수 있는 문제이다.
#include <iostream>
#include <vector>
using namespace std;
void DFS(vector<vector<int>>&, vector<bool>&, int);
int main() {
cin.tie(0)->sync_with_stdio(false);
int N, E;
cin >> N >> E;
vector<vector<int>> arr(N + 1, vector<int>());
vector<bool> visit(N + 1, 0);
int v = 0, u = 0;
for (int i = 0; i < E; ++i) {
cin >> v >> u; arr[v].emplace_back(u); arr[u].emplace_back(v);
}
int count = 0;
for (int i = 1; i <= N; ++i) {
if (visit[i] == false) {
DFS(arr, visit, i);
count++;
}
}
cout << count;
return 0;
}
void DFS(vector<vector<int>>& arr, vector<bool>& visit, int v) {
if (visit[v] == true) {
return;
}
visit[v] = true;
for (int i = 0; i < arr[v].size(); ++i) {
DFS(arr, visit, arr[v][i]);
}
}
'백준' 카테고리의 다른 글
13023번 (gold 5) (0) | 2025.01.22 |
---|---|
2023번 (gold 5) (0) | 2025.01.21 |
10989번 (bronze 1) (0) | 2025.01.20 |
2751번 (silver 5) (0) | 2025.01.19 |
11004번 (silver 5) (0) | 2025.01.18 |