17404_RGB거리 2

⭕풀이:
INF = 10000000000
n = int(input())
rgb = []
ans = INF
for _ in range(n):
rgb.append(list(map(int, input().split())))
for i in range(3):
dp = [[INF, INF, INF] for _ in range(n)]
dp[0][i] = rgb[0][i]
for j in range(1, n):
dp[j][0] = rgb[j][0] + min(dp[j - 1][1], dp[j - 1][2])
dp[j][1] = rgb[j][1] + min(dp[j - 1][0], dp[j - 1][2])
dp[j][2] = rgb[j][2] + min(dp[j - 1][0], dp[j - 1][1])
for j in range(3):
if i != j:
ans = min(ans, dp[-1][j])
print(ans)
⭕풀이설명:
https://dalseoin.tistory.com/entry/%EB%B0%B1%EC%A4%80-%ED%8C%8C%EC%9D%B4%EC%8D%AC-17404-RGB%EA%B1%B0%EB%A6%AC-2