본문 바로가기

CodingTest/Baekjun Online Judge

[ BOJ / 파이썬 ] 1932. 정수삼각형

오.. 이제 DP는 어느정도 감 잡아가는 느낌이다 이예에 ~

 

진짜 몇 달 전에 이 정도 문제도 감이 안 잡혔었는데... 정말 난독증이었던걸까.. 🙄😥

 

하여간 데이터 배열 자체에 메모제이션으로 해결할 수 있는 간단한 문제였다.

 

대신 핵심포인트는 해당 열의 첫 값과 끝 값을 예외처리해줘야 함.

 

n = int(input())
triangle = [list(map(int, input().split())) for _ in range(n)]
for i in range(1, n):
  row = triangle[i]
  triangle[i][0] += triangle[i-1][0]
  for j in range(1, len(row)-1):
    triangle[i][j] += max(triangle[i-1][j], triangle[i-1][j-1])
  triangle[i][len(row)-1] += triangle[i-1][len(row)-2]

print(max(triangle[n-1]))