첫 번째 제출
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
# 예외 - 최소
if not grid:
return 0
def dfs(r,c):
grid[r][c] = "0"
for i in range(4):
nr, nc = r + dr[i], c + dc[i]
if 0 <= nr < len(grid) and 0 <= nc < len(grid[0]):
if grid[nr][nc] == "1":
dfs(nr,nc)
dr, dc = [-1,1,0,0], [0,0,-1,1]
result = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == "1":
dfs(i, j)
result += 1
return result
+)
- 원래 처음에는 한 번 다녀온 곳을 1->0으로 바꾸지 않고 visited 리스트를 따로 사용했다. 그랬더니 time exceed error가 떴다.
굳이 visited를 안 쓰고도 0으로 바꾸면 공간복잡도를 아낄 수 있었다