본문 바로가기
알고리즘

[Python] LeetCode - 64. Minimum Path Sum

2023. 3. 27.

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

댓글