https://www.acmicpc.net/problem/2606
#include <iostream>
#include <vector>
#include <set>
#include <stack>
using namespace std;
int main() {
int N,M; cin >> N>>M;
vector<vector<int>> connect(101);
for (int i = 0; i < M; i++) {
int a, b; cin >> a >> b;
connect[a].push_back(b);
connect[b].push_back(a);
}
stack<int> s; s.push(1);
set<int> sets;
while (!s.empty()) {
int num = s.top(); s.pop();
sets.insert(num);
for (int n : connect[num]) {
if (sets.find(n) == sets.end()) {
s.push(n);
}
}
}
cout << sets.size()-1 << endl;
return 0;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 백준 "9461) 파도반 수열" (0) | 2022.06.06 |
---|---|
(c++) 백준 "9095) 1,2,3 더하기 (0) | 2022.06.06 |
(c++) 백준 "2579) 계단 오르기" (0) | 2022.06.06 |
(c++) 백준 "1463) 1로 만들기" (0) | 2022.06.06 |
(c++) 프로그래머스 "징검다리(level-4)" (0) | 2022.06.06 |