알고리즘

[백준, 1149번] RGB거리

hminor 2023. 7. 30. 11:45

빨강, 초록, 파랑 모든 경우에서 조사를 해봐야 하기에
두 번째 집의 빨강, 초록, 파랑일 경우에 대해서
이전 집과 겹치지 않는 색상의 집의 값을 현재 집의 값에 축적시키며 진행하기

- 포인트는 현재의 값에 이전의 최소값을 축적시키는 것!

import sys
input = sys.stdin.readline
n = int(input())
arr = [list(map(int,input().split())) for _ in range(n)]

for i in range(1, n):
    arr[i][0] = min(arr[i-1][1], arr[i-1][2]) + arr[i][0] # 빨강
    arr[i][1] = min(arr[i-1][0], arr[i-1][2]) + arr[i][1] # 초록
    arr[i][2] = min(arr[i-1][0], arr[i-1][1]) + arr[i][2] # 파랑
print(min(arr[n-1]))