간단하게 현재 위치에서 앞 뒤는 같은 색이 되지 않는다 생각하고 풀면 쉽게 풀린다.
import sys
input = sys.stdin.readline
n = int(input())
cost = []
for _ in range(n):
cost.append(list(map(int,input().split())))
for i in range(1,n):
cost[i][2] = min(cost[i-1][0],cost[i-1][1]) + cost[i][2]
cost[i][1] = min(cost[i-1][0], cost[i-1][2]) + cost[i][1]
cost[i][0] = min(cost[i-1][1], cost[i-1][2]) + cost[i][0]
print(min(cost[n-1]))