문제출처: https://www.acmicpc.net/problem/11724
풀이
그래프를 그려서 연결 요소의 개수를 세주면 됩니다. 무방향그래프이기 때문에 u->v, v->u 길을 모두 1처리해줘야합니다.
코드
#include<iostream> using namespace std; int map[1001][1001]; int check[1001]; int n, m, u, v, cnt; void dfs(int x); int main() { cin.tie(0); cin.sync_with_stdio(false); cin >> n >> m; for (int i=0;i<m;i++) { cin >> u >> v; map[u][v] = 1; map[v][u] = 1; } for (int i = 1; i <= n; i++) { if(!check[i]) { dfs(i); cnt++; } } cout << cnt << '\n'; } void dfs(int x) { check[x] = 1; for (int i = 1; i <= n; i++) { if (!check[i] && map[x][i]) dfs(i); } }
결과
'문제풀이(BOJ) > DFS,BFS' 카테고리의 다른 글
[백준 14502] 연구소 (BFS) (0) | 2020.01.17 |
---|---|
[백준 2667] 단지번호붙이기 (BFS) (0) | 2020.01.17 |
[백준 1012] 유기농 배추 (DFS) (0) | 2020.01.15 |
[백준 1012] 유기농 배추 (BFS) (0) | 2020.01.15 |
[백준 2178] 미로 탐색 (BFS) (0) | 2020.01.15 |