백준

11724번 (silver 2)

이야기prog 2025. 1. 20. 23:35

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