[백준] 17404번 RGB 거리 2 c++


[백준] 17404번 RGB 거리 2 c++

RGB 거리에서 원형이 추가된 문제 모든 경우의 수를 생각하려면 너무 복잡하기에 처음에 칠 할 색깔을 R, G, B로 고정시키고 DP를 돌리면 된다. 즉 처음을 빨강으로 고정시키고 DP를 돌리고 다 돌리고 난 뒤에 맨 마지막 색깔이 빨강인 건 제외하고 파랑과 노랑에서 최솟값을 구한다. 먼저 first 변수를 통해서 R, G, B를 고정시킬 수 있게 한다. 바로 밑에 있는 for 문을 통해서 색깔을 고정시킬 수 있게 한다. 여기서 i가 의미하는 건 첫 번째 집에 어떤 색깔을 칠할지를 정하는 것이다. i == first 이면 첫 번째 집을 first가 의미하는 색깔로 칠한다는 것이기에 dp[0][i] = board[0][i]로 해준다. i != first 이면 i + 1..........



원문링크 : [백준] 17404번 RGB 거리 2 c++