본문 바로가기
Algorithm

[Algorithm][Graph][Java] 문제 풀이 #27 - 200. Number of Islands

by Lee David 2022. 8. 28.
반응형
문제 링크

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);
}
결과

이전에 비슷한 문제를 풀어봐서인지 답이 바로 나온것 같습니다.

역시 코테는 경험이 중요한것 같네요.

반응형