728x90
https://www.acmicpc.net/problem/1149
import sys
n = int(sys.stdin.readline())
dp = [ list(map(int, sys.stdin.readline().split())) for _ in range(n) ]
for i in range(1, n): #1
dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + dp[i][0]
dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + dp[i][1]
dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + dp[i][2]
print(min(dp[n-1][0], dp[n-1][1], dp[n-1][2])) #2
#1 : dp를 위한 비교값은 인덱스 0으로 반복문은 1부터 시작
#2 : 가장 최소의 누적값을 출력
dp를 이렇게도 사용할 수 있다는걸 배웠다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 2579 파이썬(python) : 계단 오르기 (0) | 2022.07.14 |
---|---|
[백준] 1932 파이썬(python) : 정수 삼각형 - (★) (0) | 2022.07.14 |
[백준] 1912 파이썬(python) : 연속합 (0) | 2022.07.14 |
[백준] 9461 파이썬(python) : 파도반 수열 (0) | 2022.07.14 |
[백준] 1904 파이썬(python) : 01타일 - dp기초 (0) | 2022.07.14 |