본문 바로가기

PS/백준 문제

백준 1932번 파이썬 문제풀이

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가지 위치에서만 내려올 수 있다.

 

 

반응형