본문 바로가기

CS/Coding Test

[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 16 다이나믹 프로그래밍 문제 - Q32 정수 삼각형

728x90

1. 문제


 

2. 코드

n = int(input())

data = []

for i in range(n):
    data_list = list(map(int, input().split()))
    for j in range (n, i + 1, -1):
        data_list.append(0)
    data.append(data_list)

for i in range(n):
    for j in range(n):
        
        if i == 0:
            up =  0
        else:
            up = data[i-1][j]
        
        if i == 0:
            left_up = 0
        else:
            left_up = data[i-1][j-1]
        
        data[i][j] = data[i][j] + max(up, left_up)

print(max(data[n-1]))