문제 난이도 : Easy
문제 유형 : Data Structures - Queue
문제 설명 간략 :
m x n 2d binary grid가 주어지고 1은 땅 0은 물을 나타낸다. 땅의 갯수를 구하여라(물로 둘러 쌓인 덩어리를 땅으로 간주한다.)
제약사항
- m == grid.length
- n == grid[i].length
- 1 <= m, n <= 300
- grid[i][j] is ‘0’ or ‘1’.
자바 풀이
class Solution {
public int numIslands(char[][] grid) {
int islands = 0;
for(int i = 0; i < grid.length; i++) {
for(int j = 0; j < grid[0].length; j++) {
if(grid[i][j] == '1') {
visit(grid, i, j);
islands++;
}
}
}
return islands;
}
public void visit(char[][] grid, int row, int col) {
grid[row][col] = '-';
//상
if(row < grid.length-1 && grid[row+1][col] == '1') {
visit(grid,row+1,col);
}
//하
if(row > 0 && grid[row-1][col] == '1') {
visit(grid,row-1,col);
}
//좌
if(col < grid[0].length-1 && grid[row][col+1] == '1') {
visit(grid,row,col+1);
}
//우
if(col > 0 && grid[row][col-1] == '1') {
visit(grid,row,col-1);
}
}
}
출처