dp 누적으로 최소값 구해줬습니다.
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(N)]
dp = [[[0,0,0] for _ in range(M)]] + [[[float('inf'),float('inf'),float('inf')] for _ in range(M)] for _ in range(N)]
for i in range(1,N+1):
for j in range(M):
if j < M-1:
dp[i][j][0] = min(dp[i-1][j+1][1],dp[i-1][j+1][2]) + matrix[i-1][j]
if 0 < j:
dp[i][j][2] = min(dp[i-1][j-1][1],dp[i-1][j-1][0]) + matrix[i-1][j]
dp[i][j][1] = min(dp[i-1][j][0],dp[i-1][j][2]) + matrix[i-1][j]
min_value = float('inf')
for row in dp[i]:
for each in row:
min_value = min(min_value,each)
print(min_value)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 16159 1, 2, 3 더하기 9 (0) | 2021.09.28 |
---|---|
[백준][Python] 17141 연구소 2 (0) | 2021.09.24 |
[백준][Python] 16938 캠프준비 (0) | 2021.09.20 |
[백준][Python] 1918 후위표기식 (0) | 2021.09.19 |
[백준][Python] 17129 윌리암슨 수액빨이딱따구리가 정보섬에 올라온 이 (0) | 2021.09.19 |