https://www.acmicpc.net/problem/2606
그냥 dfs로 순회했다.
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
vector<int> graph[101];
bool visited[101] = { 0, };
int v, n;
int sum = 0;
void dfs(int i) {
visited[i] = true;
for (int k : graph[i]) {
if (visited[k] == false) {
dfs(k);
sum++;
}
}
}
int main() {
cin >> v >> n;
for (int i = 0; i < n; i++) {
int temp1, temp2;
cin >> temp1 >> temp2;
graph[temp1].push_back(temp2);
graph[temp2].push_back(temp1);
}
dfs(1);
cout << sum << '\n';
return 0;
}
'개발공부 > 백준풀이' 카테고리의 다른 글
백준 1764 c++ (1) | 2024.12.03 |
---|---|
백준 1966 C++ (0) | 2024.11.30 |
1026 C++ 그리디 (0) | 2024.11.26 |
11723 백준 c++ (0) | 2024.11.20 |
백준 1991 C++ 트리순회 문제(전위,중위,후방)순회 (0) | 2024.11.13 |