-

DP :: 백준 :: RGB거리 :: 1149 본문

알고리즘/DP

DP :: 백준 :: RGB거리 :: 1149

lingi04 2016. 11. 2. 12:08



[풀이방법]

dp[0][i] = i번째에 R을 칠할 때 까지 든 최소비용

dp[1][i] = i번째에 G을 칠할 때 까지 든 최소비용

dp[2][i] = i번째에 B을 칠할 때 까지 든 최소비용

이라고 할 때


dp[0][i] = min(dp[1][i-1], dp[2][i-1])+i번째 R을 칠할때 드는 비용

dp[1][i] = min(dp[0][i-1], dp[2][i-1])+i번째 G을 칠할때 드는 비용

dp[2][i] = min(dp[1][i-1], dp[0][i-1])+i번째 B을 칠할때 드는 비용


dp[0][i], dp[1][i], dp[2][i] 중 최솟값을 출력하면 된다.





>>추가

2차원배열로 풀었는데 1차원배열로 푸는것도 가능할 것 같다.

dp[0] : i번째를 R로 칠했을 때 최솟값

dp[1] : i번째를 G로 칠했을 때 최솟값

dp[2] : i번째를 B로 칠했을 때 최솟값

모든 연산 마친 후 

min(dp[0], dp[1], dp[2]) 출력

Comments