#. 테스트 문제

#. 결과 및 풀이
1. 풀이
@Test
void NumberOfIsland_DFS() {
char[][] grid = {{'1', '1', '1', '0', '1'}, {'1', '1', '0', '0', '0'}, {'1', '1', '0', '0', '1'}, {'0', '0', '0', '0', '1'}};
Assertions.assertEquals(3, NumberOfIsland_DFS_Solution(grid));
}
private int NumberOfIsland_DFS_Solution(char[][] grid) {
if(grid == null || grid.length == 0 || grid[0].length == 0) return 0;
int count = 0;
for(int i=0; i<grid.length; i++) {
for(int j=0; j<grid[i].length; j++) {
if(grid[i][j] == '1') {
count++;
NumberOfIsland_DFS(grid, i, j);
}
}
}
return count;
}
private void NumberOfIsland_DFS(char[][] grid, int i, int j) {
int m = grid.length;
int n = grid[0].length;
if(i < 0 || i >= m || j < 0 || j >= n || grid[i][j] != '1')
return;
grid[i][j] = 'x';
NumberOfIsland_DFS(grid, i-1, j);
NumberOfIsland_DFS(grid, i+1, j);
NumberOfIsland_DFS(grid, i, j-1);
NumberOfIsland_DFS(grid, i, j+1);
}배웠다