반응형
문제 링크
https://leetcode.com/problems/number-of-islands/
내 문제 풀이
public int numIslands(char[][] grid) {
int result = 0;
for(int i = 0; i < grid.length; i++) {
for(int j = 0; j < grid[i].length; j++) {
char tmp = grid[i][j];
if(tmp == '0') continue;
result++;
recurtion(i, j, grid);
}
}
return result;
}
private void recurtion(int i, int j, char[][] grid) {
if(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length || grid[i][j] == '0') return;
grid[i][j] = '0';
recurtion(i + 1, j, grid);
recurtion(i - 1, j, grid);
recurtion(i, j + 1, grid);
recurtion(i, j - 1, grid);
}
결과
이전에 비슷한 문제를 풀어봐서인지 답이 바로 나온것 같습니다.
역시 코테는 경험이 중요한것 같네요.
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm][Graph][Java] 문제 풀이 #29 - 542. 01 Matrix (0) | 2022.08.31 |
---|---|
[Algorithm][Graph][Java] 문제 풀이 #28 - 733. Flood Fill (0) | 2022.08.29 |
[Algorithm][Tree][Java] 문제 풀이 #26 - 102. Binary Tree Level Order Traversal (0) | 2022.08.22 |
[Algorithm][Tree][Java] 문제 풀이 #25 - 124. Binary Tree Maximum Path Sum (0) | 2022.08.21 |
[Algorithm][Tree][Java] 문제 풀이 #24 - Same Tree (0) | 2022.08.19 |