728x90
N = int(input())
paint = []
for _ in range (0,N):
painting = list(map(int,input().split()))
paint.append(painting)
dp1 = [0 for _ in range (0,N)] #idx 0부터 시작하는 경우
dp2 = [0 for _ in range (0,N)] #idx 1부터 시작하는 경우
dp3 = [0 for _ in range (0,N)] #idx 2부터 시작하는 경우
idx = 0
for i in range (0,N):
if i == 0:
dp1[i],dp2[i],dp3[i] = paint[i][0],paint[i][1],paint[i][2]
else:
dp1[i] = min(dp2[i-1], dp3[i-1]) + paint[i][0]
dp2[i] = min(dp1[i-1], dp3[i-1]) + paint[i][1]
dp3[i] = min(dp1[i-1], dp2[i-1]) + paint[i][2]
print(min(dp1[-1], dp2[-1],dp3[-1]))
이렇게 보니까 가운데에 idx는 필요 없다는 것이 ...
'코딩' 카테고리의 다른 글
[BOJ] 9359 서로소 python (1) | 2024.03.31 |
---|---|
[BOJ] 3964 팩토리얼과 거듭제곱 Python (0) | 2024.03.18 |
[BOJ] 백준 18111 마인크래프트 Python (0) | 2024.02.29 |
[BOJ] 2252 줄 세우기 Python (0) | 2024.02.28 |
[BOJ] 1132 합 (Python) (1) | 2024.02.27 |