알고리즘

[LeetCode] 1905. Count Sub Islands

유병각 2022. 6. 2. 01:26

1905. Count Sub Islands

class Solution:
    def countSubIslands(self, grid1: List[List[int]], grid2: List[List[int]]) -> int:
        n = len(grid1)
        m = len(grid1[0])
        
        def dfs(r,c):
            nonlocal flag
            
            if (r < 0 or r >= n or c < 0 or c >= m or grid2[r][c] == 0):
                return ;
            
            grid2[r][c] = 0;
            if (grid1[r][c] != 1):
                flag = False
                
            dfs(r+1,c)
            dfs(r-1,c)
            dfs(r,c+1)
            dfs(r,c-1)
            
        cnt = 0;
        for i in range(n):
            for k in range(m):
                if (grid2[i][k] == 1):
                    flag = True
                    dfs(i,k)
                    if (flag):
                        cnt += 1;
        return cnt