백준 C++

백준 1149번 RGB거리 C++

Srff5123 2025. 5. 19. 16:16
728x90

 

1. 문제설명

RGB 거리에는 집이 N개 있다. 거리는 선분으로 나타내며 1번부터 N번 집이 순서대로 있다.

집을 빨강, 초록, 파랑 중 하나의 색으로 칠할려고 한다.

각각 집마다 3색에 대한 색칠 비용이 주어졌을때, 아래 규칙을 만족하여 가장 적게 드는 비용의 값을 구하는 문제이다.

 

1번 집은 2번 집의 색과 달라야 한다.

N번 집의 색은 N - 1 집의 색과 달라야 한다.

N번 집의 색은 N - 1 , N + 1 번 집의 색과 달라야 한다.

즉 N번 집이 있다면 양옆에 있는 집은 다른색으로 칠해져 있어야한다는것

 

N번을 빨강 초록 파랑중 하나로 칠하고 다음 집에 대해서 min함수로 최소비용을 찾아내 하나씩 채운다.

그러면 모든 집을 다 돌았을때, min함수를 통해 가장 적게 나온 비용을 알 수있다.

728x90