n = int(input())
rgb = [[0]*3 for _ in range(n)]
for i in range(n):
rgb[i] = [int(v) for v in input().split()]
dp = [[0]*3 for _ in range(n)]
dp[0] = rgb[0]
for i in range(1, n):
dp[i][0] = min(dp[i-1][1], dp[i-1][2])+ rgb[i][0]
dp[i][1] = min(dp[i-1][0], dp[i-1][2])+ rgb[i][1]
dp[i][2] = min(dp[i-1][0], dp[i-1][1])+ rgb[i][2]
print(min(dp[-1]))
2차원 배열을 쓰는 DP의 맛보기 문제
같은 색이 중복되면 안되므로 이전 값들의 합을 저장할 때 같은 인덱스는 피해서 구해준다.