LeetCode Minimum Path Sum (JavaScript)

2025. 12. 11. 18:11·코딩테스트/LeetCode

링크 : https://leetcode.com/problems/minimum-path-sum/description/

문제 설명

더보기

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

Example 1:

Input: grid = [[1,3,1],[1,5,1],[4,2,1]]
Output: 7
Explanation: Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum.

Example 2:

Input: grid = [[1,2,3],[4,5,6]]
Output: 12

Constraints:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 200
  • 0 <= grid[i][j] <= 200

문제 풀이

DP를 이용하여 풀이

핵심 :  각 자리에서 도달할 수 있는 최단 거리를 저장해 나가면서 계산

1. 첫 번째 row는 이전 row의 값을 더해주면 됨, 첫 번째 col은 이전 col의 값을 더해주면 됨.

2. 오른쪽, 아래로 이동이 가능하므로 위, 왼쪽에서 올 수 있는 최단거리의 값을 자리에 더해줌.

3. 최종적으로 m - 1, n - 1좌표는 최단 거리가 저장되어있음.

/**
 * @param {number[][]} grid
 * @return {number}
 */
var minPathSum = function(grid) {
    const m = grid.length;
    const n = grid[0].length;

    for (let i = 0; i < m; i++) {
        for (let j = 0; j < n; j++) {
            if (i === 0) {
                if (j > 0) {
                    grid[i][j] += grid[i][j - 1];
                }
            } else if (j === 0) {
                if (i > 0) {
                    grid[i][j] += grid[i - 1][j];
                }
            } else {
                grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1]);
            }
        }
    }

    return grid[m - 1][n - 1];
};

결론

DP를 활용해 각 자리를 어떠한 방식으로 관리를 할 것인가가 중요

'코딩테스트 > LeetCode' 카테고리의 다른 글

LeetCode Set Matrix Zeroes (JavaScript)  (0) 2025.12.16
LeetCode Simplify Path (JavaScript)  (1) 2025.12.15
LeetCode Unique Paths (JavaScript)  (0) 2025.12.10
LeetCode Pascal's Triangle (JavaScript)  (0) 2025.12.09
LeetCode Remove Duplicates from Sorted List (JavaScript)  (0) 2025.12.09
'코딩테스트/LeetCode' 카테고리의 다른 글
  • LeetCode Set Matrix Zeroes (JavaScript)
  • LeetCode Simplify Path (JavaScript)
  • LeetCode Unique Paths (JavaScript)
  • LeetCode Pascal's Triangle (JavaScript)
의현
의현
개발하는 하루
  • 의현
    UIHYEON
    의현
  • 링크

    • 김의현 포트폴리오
    • GitHub
    • LinkedIn
  • 전체
    오늘
    어제
    • 분류 전체보기 (215) N
      • 프론트엔드 (65) N
        • JavaScript (52) N
        • HTML (3)
        • React (7)
        • CSS (2)
        • CS (1)
      • 프로젝트 (19)
        • Portfolio 사이트 개발 (19)
      • 코딩테스트 (128) N
        • Binary Search (2)
        • bfs (Breadth-first s.. (4)
        • dfs (Deapth-first se.. (1)
        • Greedy (1)
        • Dynamic Programming (1)
        • two pointer (4)
        • 구현 (2)
        • LIS(Longest Increasi.. (0)
        • 문자열 (3)
        • 자료구조 (6)
        • 비트마스크 (2)
        • 수학 (2)
        • 프로그래머스 (61)
        • LeetCode (39) N
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
의현
LeetCode Minimum Path Sum (JavaScript)
상단으로

티스토리툴바