- Reference
visited
์ฐ๊ณ ํ ์๋ ์๋ ๋ฌธ์
Solution
from typing import List
class Solution:
# ์ฌ -> '0'(water)๋ก ๋๋ฌ์ธ์ฌ ์์ด์ผ ํจ, ๋ณด์ด์ง ์๋ ๋ฐ๊นฅ์ ์ ๋ถ '0'์ด๋ผ๊ณ ๊ฐ์
# "๋๊ฐ์ ์ ๊ณ ๋ คํ ํ์๊ฐ ์์"
def numIslands(self, grid: List[List[str]]) -> int:
WATER = '0'
LAND = '1'
# answer: ์ฌ์ ๊ฐ์
answer = 0
# ๊ธฐ๋ณธ x, y
len_x = len(grid[0])
len_y = len(grid)
def dfs(x: int, y: int) -> None:
if x < 0 or x >= len_x \
or y < 0 or y >= len_y \
or grid[y][x] == WATER:
return
# visited ์ฌ์ฉํ ์ ์์ง๋ง ๊ณต๊ฐ๋ณต์ก๋๋ฅผ ์ํด ์ด ๋ฌธ์ ์์๋ '0'์ผ๋ก ์ ์ฅ
grid[y][x] = WATER
dfs(x + 1, y)
dfs(x - 1, y)
dfs(x, y + 1)
dfs(x, y - 1)
for y in range(len_y):
for x in range(len_x):
if grid[y][x] == LAND:
dfs(x, y)
answer += 1
return answer
Leave a comment