페인터
메모리 제한1024 MB
각 목표 색은 빨강, 노랑, 파랑의 부분집합이므로, 구간에 기본색을 칠하는 횟수를 최소로 하여 목표 그림을 완성하는 문제입니다.
문제
최근 그림 그리기를 공부하기 시작했고, 첫 수업 중 하나에서 세 가지 원색 Red, Yellow, Blue를 배웠다. 이 색을 조합하면 더 많은 색을 만들 수 있다. 지금까지 배운 조합은 다음과 같다.
- Red + Yellow = Orange
- Red + Blue = Purple
- Yellow + Blue = Green
- Red + Yellow + Blue = Gray
아직 색의 농도는 이해하지 못하므로, 조합에서 각 색의 비율과 순서는 중요하지 않다. 예를 들어 Red와 Yellow를 조합한 결과는 Yellow와 Red를 조합한 결과와 같고, Red, Yellow, Red를 다시 조합한 결과와도 같다.
실력을 연습하기 위해 길이 인 1차원 그림 를 그리고 싶다. 그림은 개의 정사각형으로 이루어진다. 왼쪽에서 오른쪽으로 는 번째 정사각형의 색을 나타낸다. 처음에는 모든 정사각형이 Uncolored 상태, 즉 모든 에 대해 = Uncolored이다.
한 번의 붓질로 세 가지 원색 중 하나를 골라 연속한 정사각형들에 칠할 수 있다. 다시 말해 색 와 두 정수 , 을 골라 을 만족할 때, 인 모든 정사각형 에 색 를 칠할 수 있다. 칠하려는 정사각형이 현재 Uncolored이면 색이 가 된다. 그렇지 않으면 위 목록에 따라 지금까지 이 정사각형에 칠해진 모든 색과 새 색 의 조합이 된다.
시간을 아끼기 위해 붓질 횟수를 최소로 하고 싶다. 그리고자 하는 그림의 설명이 주어질 때, 그림을 완성하는 데 필요한 최소 붓질 횟수를 구하라.
입력
입력의 첫 줄에는 테스트 케이스의 수 가 주어진다. 개의 테스트 케이스가 이어진다.
각 테스트 케이스는 그림의 길이를 나타내는 정수 이 있는 줄로 시작한다. 다음 줄에는 그림을 나타내는 길이 의 문자열 가 주어진다. 번째 문자는 다음 목록에 따라 정사각형 의 색을 나타낸다.
U= UncoloredR= RedY= YellowB= BlueO= OrangeP= PurpleG= GreenA= Gray
출력
각 테스트 케이스마다 Case #x: y를 한 줄에 출력한다. 여기서 는 테스트 케이스 번호(1부터 시작)이고, 는 그림을 완성하는 데 필요한 최소 붓질 횟수이다.
제한
- .
- .