Skip to content

Commit 32f43a4

Browse files
committed
number-of-islands solution
1 parent fbffd5e commit 32f43a4

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution:
2+
def numIslands(self, grid: List[List[str]]) -> int:
3+
4+
# DFS (์‹œ๊ฐ„๋ณต์žก๋„ O(m*n), ๊ณต๊ฐ„๋ณต์žก๋„ O(m*n))
5+
answer = 0 # ์„ฌ์˜ ์ˆ˜
6+
m = len(grid)
7+
n = len(grid[0])
8+
9+
# ํ•˜๋‚˜์˜ ์„ฌ ์ฒ˜๋ฆฌ(์—ฐ๊ฒฐ๋œ ๋•… ๋ชจ๋‘ ๋ฐฉ๋ฌธ)
10+
def dfs(x,y):
11+
# ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜, ์ด๋ฏธ ๋ฐฉ๋ฌธํ–ˆ๊ฑฐ๋‚˜, ๋•…์ด ์•„๋‹ˆ๋ฉด ์ข…๋ฃŒ
12+
if x < 0 or y < 0 or x >= m or y >= n or grid[x][y] != "1":
13+
return
14+
15+
# ํ˜„์žฌ ๋•… ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ
16+
grid[x][y] = "*"
17+
18+
# ์ƒํ•˜์ขŒ์šฐ ํƒ์ƒ‰
19+
dfs(x+1, y)
20+
dfs(x-1, y)
21+
dfs(x, y+1)
22+
dfs(x, y-1)
23+
24+
for i in range(m):
25+
for j in range(n):
26+
# ๋•… ๋ฐœ๊ฒฌ์‹œ dfs๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ๋•… ๋ฐฉ๋ฌธํ•˜๊ณ  ์„ฌ+1 ์ฒ˜๋ฆฌ
27+
if grid[i][j] == "1":
28+
dfs(i,j)
29+
answer += 1
30+
31+
return answer

0 commit comments

Comments
ย (0)