#include <stdio.h> #include <iostream> #include <queue> #include <vector> #include <string> #include <algorithm> using namespace std; int map[1010][1010]; int V, E; queue<int> q; int visited[1010]; void BFS(int start) { visited[start] = 1; q.push(start); while(!q.empty()) { start = q.front(); q.pop(); for(int i = 1; i <= V; i++) { if(map[start][i] == 1 && visited[i] == 0) { visited[i] = 1; q.push(i); } } } } int main(void) { // freopen("B11724_input.txt", "r", stdin); cin >> V >> E; for(int i = 1; i <= E; i++) { int a, b; cin >> a >> b; map[a][b] = 1; map[b][a] = 1; } int cnt = 0; for(int i = 1; i <= V; i++) { if(visited[i] == 0) { BFS(i); cnt++; } } cout << cnt; return 0; } | cs |
'Baekjoon > BFS' 카테고리의 다른 글
[백준 14442] 벽 부수고 이동하기2 (BFS) (C/C++) (★) (0) | 2019.12.04 |
---|---|
[백준 2206] 벽 부수고 이동하기 (BFS) (C/C++) (0) | 2019.12.04 |
[백준 2468] 안전영역 (BFS) (C/C++) (0) | 2019.12.04 |
[백준 9177] 단어 섞기 (DFS/BFS) (C/C++) (★★) (0) | 2019.12.04 |
[백준 7562] 나이트의 이동 (BFS) (C/C++) (0) | 2019.12.03 |