-
200. Number of IslandsProgramming/leetcode 2021. 2. 24. 15:09728x90
DFS(재귀)를 이용한 문제 풀이
좌표를 찾아가다가 1을 만나면 연결된 1을 0으로 만들고 상,하,좌,우에 1이 없을때까지 반복
내부함수로 구현했지만, dfs를 함수로 빼도되지만, self와 grid를 넘기기 싫어서 이렇게 구현함
def numIslands(self, grid: List[List[str]]) -> int: def dfs(x:int, y:int)->int: if x < 0 or x >= len(grid) or y < 0 or y >= len(grid[0]) or grid[x][y] != '1': return 0 grid[x][y] = 0 dfs(x+1, y) dfs(x-1, y) dfs(x, y+1) dfs(x, y-1) return 1 count = 0 for i in range(len(grid)): for j in range(len(grid[i])): count += dfs(i, j) return count
'Programming > leetcode' 카테고리의 다른 글
39. Combination Sum (0) 2021.03.03 17. Letter Combinations of a Phone Number (0) 2021.02.24 DFS, BFS (0) 2021.02.23 347. Top K Frequent Elements (0) 2021.02.22 3. Longest Substring Without Repeating Characters (0) 2021.02.22