오.. 이제 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]))
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 2193. 이친수 (0) | 2023.02.05 |
---|---|
[ BOJ / 파이썬 ] 11727. 2xN 타일링 2 (0) | 2023.02.05 |
[ BOJ / 파이썬 ] 12100 2048(Easy) (0) | 2023.02.04 |
[ BOJ / 파이썬 ] 1182.부분수열의 합 (0) | 2023.01.30 |
[ BOJ / 파이썬 ] 9663. N-QUEEN (0) | 2023.01.30 |