1N = int(input())
2L = [list(map(int, input().split())) for _ in range(N)]
3
4result = 100000
5
6for i in range(3):
7 dp = [[0, 0, 0] for _ in range(N)]
8 dp[0] = [10000]*3
9 dp[0][i] = L[0][i]
10 for j in range(1, N):
11 dp[j][0] = min(dp[j-1][1], dp[j-1][2])+L[j][0]
12 dp[j][1] = min(dp[j-1][0], dp[j-1][2])+L[j][1]
13 dp[j][2] = min(dp[j-1][0], dp[j-1][1])+L[j][2]
14
15 dp[N-1][i] = 100000
16 result = min([result]+dp[N-1])
17
18print (result)
-
인터넷을 참고하여 풀었다
-
첫째집 3가지 X 마지막집 3가지 = 9가지 이지만
-
색이 같은 경우를 제외하면 총 6가지 경우를 비교하게된다.
-
첫번째 집에 특정 색만 칠하기 위해 나머지 색에 MAX값을 넣었다.
-
최대값에 충분히 큰 값을 대입하지 않아 여러번 틀렸다.