-
Notifications
You must be signed in to change notification settings - Fork 0
다이나믹 프로그래밍
SeungYeon Kang edited this page Feb 27, 2024
·
1 revision
프로그래밍을 하며 다이나믹 프로그래밍에 쓰일 수 있는 사고방식을 모읍니다.
간단한 점화식 사고방식. DP[i] = DP[i-1] + DP[i-2] 와 같이 간단한 점화식으로 풀리는 문제들이 있다.
RGB거리 1149번 다이나믹 프로그래밍에서 중요한 건 현재를 구성하는 방법이다. 현재 색이 R이면 이전 색은 B 혹은 G이다. 이것에서 방법을 착안하여, DP 배열을 3갈래로 만들면 현재 색이 R일 때의 최솟값, B일 때의(이하 생략)
DP[i][0] = min(DP[i-1][1]+RGB[i][0], DP[i-1][2]+RGB[i][0]);
DP[i][1] = min(DP[i-1][0]+RGB[i][1], DP[i-1][2]+RGB[i][1]);
DP[i][2] = min(DP[i-1][1]+RGB[i][2], DP[i-1][0]+RGB[i][2]);