n = int(input())
dp = []
for i in range(n):
dp.append(list(map(int,input().split())))
for i in range(1,n):
for j in range(i+1):
if j == 0:
left = 0
else:
left = dp[i-1][j-1]
if j == i:
right = 0
else:
right = dp[i-1][j]
dp[i][j] = dp[i][j] + max(left,right)
print(max(dp[n-1]))
1. dp 테이블 접근해야 할 때마다 리스트의 범위를 벗어나지 않은 지 체크
2. 왼쪽 위 혹은 바로 위 2가지 위치에서만 내려올 수 있다.
반응형
'PS > 백준 문제' 카테고리의 다른 글
백준 2775번파이썬 문제풀이 (0) | 2021.10.27 |
---|---|
백준 1316번 파이썬 문제풀이 (0) | 2021.10.09 |
백준 2941번 파이썬 문제풀이 (0) | 2021.10.09 |
백준 1157번 파이썬 문제풀이 (0) | 2021.08.11 |
백준 4673번 파이썬 문제 풀이 (0) | 2021.08.10 |