728x90
반응형
기본적인 다이나믹 프로그래밍 문제이다.
h, w = map(int, input().split())
li = [list(map(int, input().split())) for _ in range(h)]
dp = [[0]*w for _ in range(h)]
dp[0] = li[0]
for i in range(1, h):
for j in range(w):
if j == 0:
dp[i][j] = li[i][j] + max(dp[i-1][0], dp[i-1][1])
elif j == w-1:
dp[i][j] = li[i][j] + max(dp[i-1][j-1], dp[i-1][j])
else:
dp[i][j] = li[i][j] + max(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1])
print(max(dp[-1]))
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 14606번 피자 (Small)(python) (0) | 2021.03.19 |
---|---|
백준 알고리즘 13699번 점화식(python) (0) | 2021.03.19 |
백준 알고리즘 9656번 돌 게임 2(python) (0) | 2021.03.19 |
백준 알고리즘 8394번 악수(python) (0) | 2021.03.19 |
백준 알고리즘 19947번 투자의 귀재 배주형(python) (0) | 2021.03.19 |