문제
https://school.programmers.co.kr/learn/courses/30/lessons/43105
정답
가장 좌측과 우측 값은 계속 더해지지만, 가운데 값은 경로상에서 더 큰값만 더하면 된다는 아이디어가 필요한 문제였다.
def solution(triangle):
pre = triangle[0]
for step in triangle[1:]:
for idx, val in enumerate(step):
if idx == 0:
step[idx] += pre[idx]
elif idx == len(step) -1:
step[idx] += pre[-1]
else:
step[idx] += max(pre[idx-1], pre[idx])
pre = step
return max(step)