오션 뷰 (스몰)
면접 대비시간 제한5초메모리 제한512 MB
호수 쪽부터 남은 집 높이가 한 집씩 커지도록 철거할 집을 가장 적게 고릅니다.
문제
오션 뷰는 작은 호수 가장자리에 있는 마을이다. 마을에는 길이 하나뿐이고, 서쪽 호수에서 동쪽 언덕 쪽으로 뻗어 있다. 집은 모두 이 길의 한쪽에만 늘어서 있으며, 호수 쪽 끝의 1번부터 언덕 아래의 번까지 번호가 붙어 있다.
주민은 모두 호수를 보고 싶어 한다. 그런데 앞쪽 집이 뒤쪽 집의 시야를 가리기도 한다. 이면서 번 집의 높이가 번 집의 높이보다 크거나 같으면, 번 집이 번 집의 시야를 가린다.
마을의 통치자는 남아 있는 집이 모두 호수를 볼 수 있도록 집 몇 채를 부수기로 했다. 다만 너무 많이 부수면 주민의 반발이 크므로, 부수는 집의 수를 최소로 하려고 한다.
남은 집이 모두 호수를 볼 수 있게 하려면 최소 몇 채를 부수어야 하는지 구하여라.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어지며, 각 테스트 케이스는 두 줄이다. 첫 줄에는 집의 수 이 주어지고, 다음 줄에는 서쪽부터 동쪽 순서로 각 집의 높이가 공백 하나로 구분되어 주어진다.
제한
- 각 집의 높이는 이상 이하의 정수이다.
- 답은 항상 이하이다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 부수어야 하는 집의 최소 개수이다.
힌트
예제의 첫 번째 케이스는 답을 만드는 방법이 여러 가지다. 1번 집을 남기고 나머지 세 채 중 아무 두 채나 부수면 된다. 가장 높은 집 하나만 부수는 것으로는 부족한데, 3번 집이 여전히 4번 집의 시야를 가리기 때문이다.
두 번째 케이스는 한 채도 부술 필요가 없다. 모든 주민이 이미 호수를 볼 수 있다.
세 번째 케이스는 한 채만 남기고 모두 부수어야 한다. 어느 집을 남기든 결과는 같다.
네 번째 케이스에서는 가장 낮은 집의 주민만 호수를 보지 못한다. 그 서쪽에 있는 세 채를 부수어도 되지만, 그 집 한 채만 부수는 편이 더 낫다.