๋ง์ ๊ตฌ๊ฐ, ์์์ผ์ ์์ฝ๋ ์ฝ๋์นดํ ์๊ฐ!
์ฐ๋ฆฌ๋ผ๋ฆฌ ์ฅ๋์ผ๋ก ํ์ฃผ์ ์ค๊ฐ์ด๋ผ์ ์์์ผ ๋ฌธ์ ๊ฐ ์ ์ผ ์ด๋ ต๋ค๊ณ ํ ์ ์ด ์์๋๋ฐ, ์๋ฌด๋๋ ์ฌ์ค์ธ ๊ฒ ๊ฐ๋ค.
์์๋ก ์ด๋ฃจ์ด์ง m x n ๊ทธ๋ฆฌ๋๋ฅผ ์ธ์๋ก ๋๋ฆฝ๋๋ค.
์๋จ ์ผ์ชฝ์์ ์์ํ์ฌ, ํ๋จ ์ค๋ฅธ์ชฝ๊น์ง ๊ฐ๋ ๊ธธ์ ์์๋ฅผ ๋ค ๋ํ์ ๋,๊ฐ์ฅ ์์ ํฉ์ ์ฐพ์์ return ํด์ฃผ์ธ์.
- ํ ์ง์ ์์ ์ฐ์ธก์ด๋ ์๋๋ก๋ง ์ด๋ํ ์ ์์ต๋๋ค.
Input: [ [1,3,1], [1,5,1], [4,2,1] ] Output: 7
: 1โ3โ1โ1โ1 ์ ํฉ์ด ์ ์ผ ์์
์ ๋ง ์ดํดํด ๋ณด๋ ค๊ณ ํ๋๋ฐ.. ๋ x, y ์ถ์ผ๋ก ์๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ค๋ฉด ๋๊ฐ ์ ์งํ๋ ๊ฒ ๊ฐ๋ค
์ฌ๊ณ ๋ฅผ ๊ฑฐ๋ถํ๋ ๊ธฐ๋ถ์ด๋๊น...
์ฐ์ ์ฃผ๋ง์ ๋ค์๋ณด๊ธฐ!
def minPathSum(grid):
m = len(grid)
n = len(grid[0])
for i in range(1, n):
grid[0][i] += grid[0][i-1]
for i in range(1, m):
grid[i][0] += grid[i-1][0]
for i in range(1, m):
for j in range(1, n):
grid[i][j] += min(grid[i-1][j], grid[i][j-1])
return grid[-1][-1]
์ด์ ์ x, y์ถ์ผ๋ก ๋ฉด์ ๊ตฌํ๋ ๋ฌธ์ ๋ ๊ทธ๋ ๊ณ , ์ด๋ ๊ฒ 3์ฐจ์ ์ ์ผ๋ก ์๊ฐํด์ผ ํ๋ ์ํฉ์ด ์ค๋ฉด ๋จธ๋ฆฌ๊ฐ ๊ตณ๋ ๊ฒ ๊ฐ๋ค.
์๋ฌดํผ, ๋ชจ๋ธ ์๋ฃจ์
์ ์ดํดํด๋ณด์๋ฉด
์ด์จ๋ ๋ชจ๋ ๊ธธ์ ์์์ ์ฒซ๋ฒ์งธ ๋ฐฐ์ด์์ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์
๋ฐฐ์ด ์ ์ฒด์ ๊ฐ์, ์ฒซ๋ฒ์งธ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตฌํ๋ ๊ฒ ๊ฐ๋ค.