RGB거리 2

면접 대비

시간 제한0.5초메모리 제한128 MB

요약
N개의 집을 원형으로 배치했을 때 이웃한 집끼리 다른 색이 되도록 세 가지 색으로 칠하는 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 구현, 배열, 완전 탐색
정답자
아직 제출이 없습니다

문제

RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.

집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자.

  • 1번 집의 색은 2번, N번 집의 색과 같지 않아야 한다.
  • N번 집의 색은 N-1번, 1번 집의 색과 같지 않아야 한다.
  • i(2 ≤ i ≤ N-1)번 집의 색은 i-1, i+1번 집의 색과 같지 않아야 한다.

입력

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 모든 집을 칠하는 비용의 최솟값을 출력한다.

예제5

  1. 예제 1

    입력
    3
    26 40 83
    49 60 57
    13 89 99
    
    예상 출력
    110
    
  2. 예제 2

    입력
    3
    1 100 100
    100 1 100
    100 100 1
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3
    1 100 100
    100 100 100
    1 100 100
    
    예상 출력
    201
    
  4. 예제 4

    입력
    6
    30 19 5
    64 77 64
    15 19 97
    4 71 57
    90 86 84
    93 32 91
    
    예상 출력
    208
    
  5. 예제 5

    입력
    8
    71 39 44
    32 83 55
    51 37 63
    89 29 100
    83 58 11
    65 13 15
    47 25 29
    60 66 19
    
    예상 출력
    253