RGB거리

RGB거리

d[n][3] // 각 R G B로 n개의 집을 칠하는데 드는 비용의 최솟값

d[3][0] 은 3개의 집에 마지막 집이 R 일 때 드는 비용의 최솟값이다.

d[3][0] 은 d[2][1] + d[1][2] or d[2][2] + d[1][1] 중 최솟값 에 현재 R일 때 비용

d[n][0] = min(d[n-1][1] + d[n-2][2], d[n-1][2] + d[n-2][1]) + a[n][0]

for (int i = 1; i <= N; i++) {
    d[i][0] = Math.min(d[i - 1][1], d[i - 1][2]) + map[i][0];
    d[i][1] = Math.min(d[i - 1][0], d[i - 1][2]) + map[i][1];
    d[i][2] = Math.min(d[i - 1][0], d[i - 1][1]) + map[i][2];
}

각 마을을 어떤 색으로 칠해야 하나?