728x90
반응형
기본적인 다이나믹 프로그래밍 문제이다. 1차원 DP처럼 똑같이 해주면 된다.
N, M = map(int, input().split())
li = [list(map(int, input().split())) for _ in range(N)]
dp = [[0]*M for _ in range(N)]
dp[0][0] = li[0][0]
for i in range(N):
for j in range(M):
if i == 0 and j == 0:
continue
elif i > 0 and j == 0:
dp[i][j] = dp[i-1][j]
elif i == 0 and j > 0:
dp[i][j] = dp[i][j-1]
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
if li[i][j] == 1:
dp[i][j] += 1
print(max(map(max, dp)))
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1927번 최소 힙(python) (0) | 2021.03.22 |
---|---|
백준 알고리즘 11279번 최대 힙(python) (0) | 2021.03.22 |
백준 알고리즘 11060번 점프 점프(python) (0) | 2021.03.21 |
백준 알고리즘 4097번 수익(python) (0) | 2021.03.21 |
백준 알고리즘 1965번 상자넣기(python) (0) | 2021.03.21 |