반응형
문제 링크 : https://www.acmicpc.net/problem/11724
인접 리스트 방식으로 그래프를 표현했다.
오랜만에 알고리즘 하려니 엄청 어색하네.
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int>adj[1001];
bool vis[1001];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int vertex, edge;
cin >> vertex >> edge;
int v1, v2;
for(int i =0; i < edge; i++) {
cin >> v1 >> v2;
adj[v1].push_back(v2);
adj[v2].push_back(v1);
}
queue<int> q;
int cnt = 0;
for(int i = 1; i <= vertex; i++) {
if(vis[i] == true) continue;
q.push(i);
vis[i] = true;
cnt += 1;
while(!q.empty()) {
int cur = q.front(); q.pop();
for(auto nxt : adj[cur]) {
if(vis[nxt] == true) continue;
q.push(nxt);
vis[nxt] = true;
}
}
}
cout << cnt;
return 0;
}
반응형
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[C/C++]백준 5427번 - 불 (0) | 2021.11.11 |
---|---|
[C/C++]백준 10807번 - 개수 세기 (0) | 2021.10.21 |
[C/C++]백준 2490번 - 윷놀이 (0) | 2021.10.20 |
[C/C++]백준 2752번 - 세수정렬 (0) | 2021.10.18 |
[C/C++]백준10808번 - 알파벳 개수 (0) | 2021.10.18 |