Coding Test/Baekjoon

1932 정수 삼각형

브이담곰 2024. 8. 5. 11:14

https://www.acmicpc.net/problem/1932

✔ 유형 : DP

✔ 문제 풀이: DP memorization 방식으로 2차원 배열에 작은 값의 결과부터 저장

 

 

문제 접근

 

 

DP 점화식

 

 

코드

import sys
input = sys.stdin.readline

# input 1
N = int(input()) # size of triangle

arr = list()
DP = [[0 for _ in range(N)] for _ in range(N)] # memorization

# input 2
for i in range(N):
    line = list(map(int, input().split()))
    
    arr.append(line)

# initial value
DP[0][0] = arr[0][0]

# level of the triangle
level = 0

# bottom-up
while(level < N-1):
    for i in range(0,len(arr[level])): # list of the level line
        DP[level+1][i] = max(DP[level+1][i], DP[level][i] + arr[level+1][i]) 
        DP[level+1][i+1] = max(DP[level+1][i+1], DP[level][i] + arr[level+1][i+1])
        
    
    level += 1
    
print(max(DP[level])) # 해당 라인에서 가장 큰 값 프린트