https://leetcode.com/problems/number-of-islands/
매우 유명한 섬 문제
dfs로 풀이했다
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
move = [(0,1),(0,-1),(1,0),(-1,0)]
def OOB(x, y):
return x<0 or x>=len(grid) or y<0 or y>=len(grid[0])
def dfs(i, j):
if OOB(i, j) or grid[i][j] != "1":
return
grid[i][j] = 0
for mov in move:
dfs(i+mov[0], j+mov[1])
count = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == "1":
dfs(i,j)
count += 1
return count
근데 내부 함수에서 둘러싸인 외부 함수의 변수를 어떻게 사용할까?
예를 들면 dfs에서 grid, move??
파이썬에서는 변수 스코프를 LEGB로 관리한다. 아래 글을 참고하거나 더 알고싶다면 일급객체, 클로저로 검색하자
2022.01.11 - [Programming/Python] - python의 LEGB 규칙
'Programming > LeetCode' 카테고리의 다른 글
[LeetCode] Daily Temperatures (0) | 2022.03.29 |
---|---|
[LeetCode] Remove Duplicate Letters (0) | 2022.03.29 |
[LeetCode] Two City Scheduling (0) | 2022.03.25 |
[LeetCode] Valid Parentheses (0) | 2022.03.25 |
[LeetCode] Swap Nodes in Pairs (0) | 2022.03.24 |
댓글