일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
Tags
- 파비최
- 30분
- English
- 괜찮음
- 쓰릴오브파이트
- Daily Challenge
- 리얼 클래스
- realclass
- 영어공부
- 뭐든
- 10분
- 화상영어
- 미드시청
- 개발자
- 링피트
- Problem Solving
- 매일
- Writing
- FIT XR
- leetcode
- 만화도
- 3줄정리
- 읽기
- 잡생각
- 사이드
- 월간
- 프로젝트
- 운동
- 영어원서읽기
- 스탭퍼
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/range-sum-query-2d-immutable/
Range Sum Query 2D - Immutable - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
오늘은 오랜만에 Medium 등급의 문제가 나왔다.
생각보다 어려웠다. 2D 누적합 문제였는데, 단순 for문으로 풀었더니 TL이 발생해서 DP로 수정했다.
# TL 발생 코드
class NumMatrix:
def __init__(self, matrix: List[List[int]]):
self.matrix = matrix
def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:
res = 0
for y in range(row1, row2+1):
for x in range(col1, col2+1):
res += self.matrix[y][x]
return res
# PASS한 코드
class NumMatrix:
def __init__(self, matrix: List[List[int]]):
self.dp=[[0] * (len(matrix[0])+1) for _ in range(len(matrix)+1)]
for r in range(len(self.dp)-1):
for c in range(len(self.dp[0])-1):
self.dp[r+1][c+1]=matrix[r][c] + self.dp[r][c+1] + self.dp[r+1][c] - self.dp[r][c]
def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:
return self.dp[row2+1][col2+1] - self.dp[row1][col2+1] - self.dp[row2+1][col1] + self.dp[row1][col1]
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
Today's Challenge (0) | 2022.06.05 |
---|---|
Today's Challenge (0) | 2022.06.04 |
Today's Challenge (0) | 2022.06.02 |
Today's Challenge (0) | 2022.06.01 |
Today's Challenge (0) | 2022.05.31 |
Comments