https://www.acmicpc.net/problem/1932
# 정수 삼각형
import sys
input = sys.stdin.readline
n = int(input().rstrip()) # 삼각형의 크기
triangles = [list(map(int, input().rstrip().split())) for _ in range(n)]
for i in range(1, n):
for j in range(len(triangles[i])):
if j == 0: # 윗 줄의 0번째 열을 더한다.
triangles[i][j] += triangles[i - 1][j]
elif j == len(triangles[i]) - 1: # 윗줄의 마지막 열을 더한다.
triangles[i][j] += triangles[i - 1][j - 1]
else:
triangles[i][j] += max(triangles[i - 1][j - 1], triangles[i - 1][j])
print(max(triangles[n - 1]))
처음에 낮은 행에서 마지막 행까지 더하려 했다. 그러면 마지막 행의 마지막 요소를 계산하는 방법을 따로 구현해야해서 풀이가 잘못 되었다는걸 깨달았다.
i = 1부터 시작해서 j의 인덱스에 따라 구현방식을 다르게 했다.