1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // 10분 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; int n, m; int map[1001][1001]; bool check[1001]; void dfs(int node) { check[node] = true; for (int i = 1; i <= n; i++) { if (!check[i] && map[node][i]) { dfs(i); } } } int solve() { int cnt = 0; for (int i = 1; i <= n; i++) { if (!check[i]) { dfs(i); cnt++; } } return cnt; } int main() { scanf("%d %d", &n, &m); for (int i = 0; i < m; i++) { int u, v; scanf("%d %d", &u, &v); map[u][v] = 1; map[v][u] = 1; } printf("%d\n", solve()); return 0; } |
dfs 기본 문제.
백준 11404 플로이드 (0) | 2018.05.17 |
---|---|
백준 2468 안전 영역 (0) | 2018.05.17 |
백준 2667 단지번호붙이기 (0) | 2018.05.17 |
백준 1012 유기농 배추 (0) | 2018.05.17 |
백준 2583 영역 구하기 (0) | 2018.05.17 |
댓글,
jayharvey
머신러닝/딥러닝 관련 글을 포스팅할 예정입니다 :)