1313- ์ต์
์ ๊ฒฝ์ฐ(๋ชจ๋ ์
์ด '1'์ผ ๋) m * n ๋งํผ์ ์ฌ๊ท ํธ์ถ ์คํ ์ฌ์ฉ
1414
1515ํ์ด ๋ฐฉ๋ฒ:
16- 1. 2์ค for๋ฌธ์ผ๋ก ๊ทธ๋ฆฌ๋์ ๋ชจ๋ ์
์ ์ํ
17- 2. '1'์ ๋ฐ๊ฒฌํ๋ฉด DFS๋ก ์ฐ๊ฒฐ๋ ๋ชจ๋ ๋
์ ๋ฐฉ๋ฌธํ๊ณ '0'์ผ๋ก ํ์
18- 3. '1'์ ๋ฐ๊ฒฌํ ๋๋ง๋ค islands ์นด์ดํธ๋ฅผ 1์ฉ ์ฆ๊ฐ
16+ 1. numIslands ๋ฉ์๋: ๊ทธ๋ฆฌ๋๋ฅผ ์ํํ๋ฉฐ '1'์ ์ฐพ๊ณ ์ฌ์ ๊ฐ์๋ฅผ ์ธ๋ ์ญํ
17+ 2. visit_island ๋ฉ์๋: ํ๋์ ์ฌ์ ์์ ํ ํ์ํ๊ณ ๋ฐฉ๋ฌธํ ๋
์ '0'์ผ๋ก ๋ฐ๊พธ๋ ์ญํ
18+ 3. ๋ ํจ์๊ฐ ์๋ํ๋ ๋ฐฉ์:
19+ - numIslands๋ ์ฌ์ ์์์ ('1')์ ์ฐพ์ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํด
20+ - visit_island๋ ์ฐพ์ ์ฌ์ ์์ ํ ํ์ํ๊ณ ๋ฐฉ๋ฌธ ํ์('0'์ผ๋ก ๋ณ๊ฒฝ)
1921"""
2022
2123class Solution :
@@ -29,14 +31,17 @@ def numIslands(self, grid: List[List[str]]) -> int:
2931 return islands
3032
3133 def visit_island (self , grid , i , j ):
34+ # base case: ์์น๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋๊ฑฐ๋ '1'์ด ์๋๋ฉด ํจ์๋ฅผ ์ข
๋ฃ
3235 if (i < 0 or i >= len (grid ) or
3336 j < 0 or j >= len (grid [0 ]) or
3437 grid [i ][j ] != '1' ):
3538 return
3639
40+ # ๋ฐฉ๋ฌธํ ๋
์ '0'์ผ๋ก ํ์ํ์ฌ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์๋๋ก ํจ
3741 grid [i ][j ] = '0'
3842
39- self .visit_island (grid , i + 1 , j ) # ์
40- self .visit_island (grid , i - 1 , j ) # ์๋
43+ # ๋ค ๋ฐฉํฅ(์๋, ์, ์ค๋ฅธ์ชฝ, ์ผ์ชฝ)์ผ๋ก DFS ์ฌ๊ท ํธ์ถ
44+ self .visit_island (grid , i + 1 , j ) # ์๋
45+ self .visit_island (grid , i - 1 , j ) # ์
4146 self .visit_island (grid , i , j + 1 ) # ์ค๋ฅธ์ชฝ
4247 self .visit_island (grid , i , j - 1 ) # ์ผ์ชฝ
0 commit comments