https://school.programmers.co.kr/learn/courses/30/lessons/43105

def solution(triangle):
# 최대 높이 500
array = [0] * 500
n = len(triangle)
# 역삼각형 생성
triangle = sorted(triangle, key=lambda x: -len(x))
for i in range(0, n):
# 한 줄
temp = triangle[i]
for j in range(0, len(temp)):
array[j] = max(array[j], array[j+1]) + temp[j]
return array[0]
피보나치 같이 생겼지만 피보나치 보다 어려운 문제. 바텀업으로 풀꺼면 진짜 헷갈리니까 시간 소요는 되더라도 역삼각형으로 만들고 푸는 걸 추천.