일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스탭퍼
- 개발자
- English
- leetcode
- 영어원서읽기
- 읽기
- Writing
- 30분
- 3줄정리
- 영어공부
- 링피트
- Problem Solving
- 만화도
- 10분
- 파비최
- 월간
- FIT XR
- 화상영어
- 뭐든
- 프로젝트
- 미드시청
- 사이드
- 리얼 클래스
- realclass
- 쓰릴오브파이트
- 잡생각
- 괜찮음
- 매일
- 운동
- Daily Challenge
Archives
- Today
- Total
파비의 매일매일 공부기록
2023.04.06 Today's Challenge 본문
https://leetcode.com/problems/number-of-closed-islands/
Number of Closed Islands - LeetCode
Can you solve this real interview question? Number of Closed Islands - Given a 2D grid consists of 0s (land) and 1s (water). An island is a maximal 4-directionally connected group of 0s and a closed island is an island totally (all left, top, right,
leetcode.com
DFS의 전형적인 문제
class Solution:
def closedIsland(self, grid: List[List[int]]) -> int:
rs, cs = len(grid), len(grid[0])
cnt = 0
def dfs(i, j):
if i < 0 or j < 0 or i >= rs or j >= cs:
return False
if grid[i][j] == 1:
return True
grid[i][j] = 1
left = dfs(i, j-1)
right = dfs(i, j+1)
up = dfs(i-1, j)
down = dfs(i+1, j)
return left and right and up and down
for i in range(rs):
for j in range(cs):
if grid[i][j] == 0 and dfs(i, j):
cnt += 1
return cnt
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
2023.04.08 Today's Challenge (0) | 2023.04.08 |
---|---|
2023.04.07 Today's Challenge (0) | 2023.04.07 |
2023.04.05 Today's Challenge (0) | 2023.04.05 |
2023.04.04 Today's Challenge (0) | 2023.04.04 |
2023.04.03 Today's Challenge (0) | 2023.04.03 |
Comments