빨강, 초록, 파랑 모든 경우에서 조사를 해봐야 하기에
두 번째 집의 빨강, 초록, 파랑일 경우에 대해서
이전 집과 겹치지 않는 색상의 집의 값을 현재 집의 값에 축적시키며 진행하기
- 포인트는 현재의 값에 이전의 최소값을 축적시키는 것!
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]))
'알고리즘' 카테고리의 다른 글
[백준, 11053번] 가장 긴 증가하는 부분 수열 (0) | 2023.07.31 |
---|---|
[백준, 2579번] 계단 오르기 (0) | 2023.07.31 |
[백준, 9095번] 1, 2, 3 더하기 (0) | 2023.07.30 |
[백준, 10870번] 피보나치 수 5 (0) | 2023.07.29 |
[백준, 10826번] 피보나치 수 4 (0) | 2023.07.29 |