μμλ‘ μ΄λ£¨μ΄μ§ m x n 그리λλ₯Ό μΈμλ‘ λ립λλ€.
μλ¨ μΌμͺ½μμ μμνμ¬, νλ¨ μ€λ₯Έμͺ½κΉμ§ κ°λ κΈΈμ μμλ₯Ό λ€ λνμ λ,
κ°μ₯ μμ ν©μ μ°Ύμμ return ν΄μ£ΌμΈμ.
ν μ§μ μμ μ°μΈ‘μ΄λ μλλ‘λ§ μ΄λν μ μμ΅λλ€.
Input:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
Output: 7
μ€λͺ
: 1β3β1β1β1 μ ν©μ΄ μ μΌ μμ
const minPathSum = grid => {
// μΌλ¨ 첫 rowμ 첫 columnμ κ°κ°, κ·Έ pathλ‘ κ°λ€κ³ μκ°νκ³ λν΄λλλ€.
for (let i = 1; i < grid.length; i++) {
grid[i][0] += grid[i-1][0];
}
for (let i = 1; i < grid[0].length; i++) {
grid[0][i] += grid[0][i-1];
}
for (let i = 1; i < grid.length; i++) {
for (let j = 1; j < grid[0].length; j++) {
//μμͺ½μ΄λ μΌμͺ½μμ, λ μμκ±Έλ‘ λν΄μ€λ€.
grid[i][j] += Math.min(grid[i-1][j], grid[i][j-1]);
}
}
return grid[grid.length-1][grid[0].length-1];
};
console.log(minPathSum([[1,2,3],[4,1,2]])); // 6