삐까냥의 파도타기
4963번) 섬의 개수 - 그래프 본문
문제 출처 : https://www.acmicpc.net/problem/4963
import java.util.Scanner; public class Q4963 {
static int[][] map; static int maxY, maxX; static Scanner sc; public static void main(String[] args) {
sc = new Scanner(System.in);
int x = 0; while ( (x = sc.nextInt()) != 0 ) { setMap(x); } }
static void setMap(int x) { maxX = x; maxY = sc.nextInt(); map = new int[maxY][maxX];
for ( int i = 0; i < maxY; i++ ) { for ( int j = 0; j < maxX; j++ ) { map[i][j] = sc.nextInt(); } } int result = 0; for ( int i = 0; i < maxY; i++ ) { for ( int j = 0; j < maxX; j++ ) { if ( map[i][j] == 1 ) { result++; searchLand(j, i); } } } System.out.println(result); }
static void searchLand(int x, int y) { map[y][x] = 0;
for ( int i = -1; i <= 1; i++ ) { for ( int j = -1; j <= 1; j++ ) { int tempX = x+j, tempY = y+i; if ( tempY >= 0 && tempY < maxY && tempX >= 0 && tempX < maxX && map[tempY][tempX] == 1) { searchLand(tempX, tempY); } } } } } |
'코딩 > 백준 알고리즘' 카테고리의 다른 글
5567번) 결혼식 - 그래프 (0) | 2017.10.28 |
---|---|
1068번) 트리 - 그래프 (0) | 2017.10.28 |
1700번) 멀티탭 스케줄링 - 그리디 (0) | 2017.10.27 |
1049번) 기타줄 - 그리디 (0) | 2017.10.27 |
2875번) 대회 or 인턴 - 그리디 (0) | 2017.10.27 |