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

+ Recent posts