섬의 개수
유기농 배추(http://js1jj2sk3.tistory.com/71?category=725176)와 같은문제.
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 42 43 | #include <stdio.h> int map[50][50], w, h; int dir[8][2] = { {1,1},{1,0},{1,-1},{0,1},{0,-1},{-1,1},{-1,0},{-1,-1} }; void dfs(int x, int y) { map[x][y] = 0; for (int i = 0; i < 8; ++i) { int xx = x + dir[i][0]; int yy = y + dir[i][1]; if (xx < 0 || yy < 0 || xx >= h || yy >= w) continue; if (map[xx][yy] == 1) dfs(xx, yy); } } int main() { while (1) { scanf("%d %d", &w, &h); if (w == 0 && h == 0) return 0; for (int i = 0; i < h; ++i) for (int j = 0; j < w; ++j) scanf("%d", &map[i][j]); int cnt = 0; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { if (map[i][j] == 1) { dfs(i, j); cnt++; } } } printf("%d\n", cnt); } } | cs |
'알고리즘 > 브루트 포스' 카테고리의 다른 글
백준) 2615 오목 (0) | 2018.02.06 |
---|---|
백준) 1182 부분집합의 합 (0) | 2018.02.06 |
백준) 1012 유기농 배추 (0) | 2018.01.14 |
백준) 2206 벽 부수고 이동하기 (0) | 2018.01.14 |
백준) 3055 탈출 (3) | 2018.01.14 |