LeetCode 64번 Minimum Path Sum 문제는 (n,m)칸 까지 가는 최소경로를 구하는 문제다. 난이도는 Medium이며 DP를 통해 해결할 수 있다.
리트코드 64번 Minimum Path Sum 문제 정보
알고리즘 분류
- Dynamic Programming
난이도
- Medium
문제 요약
- 0이상의 정수로 채워진 mxn 그리드가 주어진다.
- 맨 왼쪽 위칸에서 맨 오른쪽 아래칸까지 가는 최소 경로를 구하라.
- 단, 오른쪽 또는 아래로만 이동할 수 있다.
문제 풀이 과정
- 각 칸까지 이동하기 위한 최솟값을 구한다.
- 왼쪽 or 위쪽에 저장된 값 중 더 작은 값을 더한다.
코드
class Solution: def minPathSum(self, grid: List[List[int]]) -> int: H, W = len(grid), len(grid[0]) # 1행 처리 for c in range(1, W): grid[0][c] += grid[0][c-1] # 1열 처리 for r in range(1, H): grid[r][0] += grid[r-1][0] for r in range(1, H): for c in range(1, W): grid[r][c] += min(grid[r][c-1], grid[r-1][c]) return grid[-1][-1]
- 시간복잡도: O(nm)
- 공간복잡도: O(1) - 추가 공간 X
728x90
'알고리즘' 카테고리의 다른 글
[Python] 프로그래머스 - 광물 캐기 (0) | 2023.03.29 |
---|---|
[Python] 프로그래머스 - 미로 탈출 (0) | 2023.03.28 |
[Python] LeetCode - 1319. Number of Operations to Make Network Connected (0) | 2023.03.23 |
[Python] LeetCode - 2492. Minimum Score of a Path Between Two Cities (0) | 2023.03.22 |
[Python] LeetCode - 2348. Number of Zero-Filled Subarrays (0) | 2023.03.21 |
댓글