[BOJ] 1149번. RGB거리
프로그래밍/알고리즘2017. 12. 19. 23:57
문제 링크 : https://www.acmicpc.net/problem/1149
문제는 링크 참고.
풀이.
dy[i][j] : i번째집이 j번째 색으로 칠했을 때 들 수 있는 가장 적은 비용
dy[i][j] = dy[i][j] + MIN(dy[i][(j + 1) % 3], dy[i][(j + 2) % 3]);
여기서 R은 0, G는 1, B는 2로 했다.
입력 예제 설명.
입력예제 :
3 26 40 83 49 60 57 13 89 99
0번째 집이 색칠 하는 경우
R : 26
G : 40
B : 83
1번째 집이 색칠 하는 경우
R : 49 + MIN(0번째 집 G를 칠 했을 때 비용, 0번째 집 B를 칠 했을 때 비용)
G : 60 + MIN(0번째 집 R를 칠 했을 때 비용, 0번째 집 B를 칠 했을 때 비용)
B : 57 + MIN(0번째 집 R를 칠 했을 때 비용, 0번째 집 G를 칠 했을 때 비용)
2번째 집이 색칠 하는 경우
R : 13 + MIN(1번째 집 G를 칠 했을 때 비용, 1번째 집 B를 칠 했을 때 비용)
G : 89 + MIN(1번째 집 R를 칠 했을 때 비용, 1번째 집 B를 칠 했을 때 비용)
B : 99 + MIN(1번째 집 R를 칠 했을 때 비용, 1번째 집 G를 칠 했을 때 비용)
마지막 집에서의 값 중 MIN 값을 구하면 색칠할 때 최소로 드는 비용을 구할 수 있다.
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[BOJ] 1032번. 명령 프롬프트 (0) | 2017.12.19 |
---|---|
[BOJ] 1015번. 수열 정렬 (0) | 2017.12.18 |
[BOJ] 1013번. Contact (0) | 2017.12.07 |
[BOJ] 1012번. 유기농 배추 (0) | 2017.12.04 |
[BOJ] 1010번. 다리 놓기 (0) | 2017.11.27 |