[정답 코드]
n = int(input())
trianlge = []
for i in range(n):
trianlge.append(list(map(int, input().split())))
for i in range(1, n):
for j in range(len(trianlge[i])):
if j == 0:
trianlge[i][j] += trianlge[i - 1][j]
elif j == len(trianlge[i]) - 1:
trianlge[i][j] += trianlge[i - 1][j - 1]
else:
trianlge[i][j] += max(trianlge[i - 1][j], trianlge[i - 1][j - 1])
print(max(trianlge[n - 1]))
[풀이]
1149 RGB 거리 문제와 매우 유사하다.
문제의 조건 : '아래층으로 내려갈 때 왼쪽 대각선 or 오른쪽 대각선을 선택할 수 있다'
if j == 0
and elif j == len(trianlge[i]) - 1
)[적용 자료구조 및 알고리즘]