Python으로 구현한 1932번 정수 삼각형 문제 풀이입니다.
https://www.acmicpc.net/problem/1932
n = int(input())
dp = [] # 다이나믹 프로그래밍을 위한 DP 테이블 초기화
for _ in range(n) :
dp.append(list(map(int, input().split())))
# 다이나믹 프로그래밍으로 두 번째 줄부터 내려가면서 확인
for i in range(1, n) :
for j in range(i + 1) :
# 왼쪽 위에서 내려오는 경우
if j == 0 :
up_left = 0
else :
up_left = dp[i-1][j-1]
# 바로 위에서 내려오는 경우
if j == i :
up = 0
else :
up = dp[i-1][j]
# 최대 합을 저장
dp[i][j] = dp[i][j] + max(up_left, up)
print(max(dp[n - 1]))
'백준(Python) 풀이 > 다이나믹 프로그래밍' 카테고리의 다른 글
백준(Python) 11057번 오르막 수 풀이 (0) | 2022.02.25 |
---|---|
백준(Python) 14501번 퇴사 풀이 (0) | 2022.01.12 |
백준(Python) 13301번 타일 장식물 풀이 (0) | 2021.10.27 |
백준(Python) 9625번 BABBA 풀이 (0) | 2021.10.27 |
백준(Python) 9095번 1, 2, 3 더하기 풀이 (0) | 2021.10.21 |