📖이 포스팅은 '파이썬 알고리즘 인터뷰 - 박상길님' 책을 보고 작성되었습니다.
😎문제 : https://leetcode.com/problems/number-of-islands/submissions/
1을 육지로, 0을 물로 가정한 2D 그리드 맵이 주어졌을 때, 섬의 개수를 계산하라(연결되어 있는 1의 덩어리 개수를 구하라)
[DFS로 그래프 탐색]
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
def dfs(i,j):
if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] != '1':
return
grid[i][j] = '0'
dfs(i+1, j)
dfs(i-1, j)
dfs(i, j+1)
dfs(i, j-1)
if not grid:
return 0
cnt = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] =='1':
dfs(i,j)
cnt+=1
return cnt
'자료구조와 알고리즘 > 🥑알고리즘' 카테고리의 다른 글
[알고리즘][그래프] - 3. 순열 (0) | 2022.03.28 |
---|---|
[알고리즘][그래프] - 2. 전화 번호 문자 조합 (0) | 2022.03.23 |
[알고리즘][비선형 자료구조] - 비선형(Non-Linear) 자료구조 (0) | 2022.03.16 |
[알고리즘][해시 테이블] - 4.상위 K 빈도 요소 (0) | 2022.03.09 |
[알고리즘][해시 테이블] - 3. 중복 문자 없는 가장 긴 부분 문자열 (0) | 2022.03.09 |