https://www.acmicpc.net/problem/1932
N = int(input())
N_list = []
for i in range(N):
N_list.append( list(map(int,input().split())) )
for i in range(1,N):
for j in range(i+1):
if i == 1:
N_list[i][j] += N_list[0][0]
else:
if j==0:
N_list[i][j] += N_list[i-1][0]
elif j==i:
N_list[i][j] += N_list[i-1][j-1]
else:
N_list[i][j] += max(N_list[i-1][j-1],N_list[i-1][j])
print(max(N_list[-1]))
삼각형 테두리에 있는 원소는 따로 계산해주었고
내부에 있는 원소는 대각선 위 아래에서 큰 값을 더해주는 식으로 풀었다.