모양 정돈
시간 제한1초메모리 제한128 MB
세 종류의 도형이 나열되어 있을 때, 각 종류를 하나의 연속된 블록으로 모으는 데 필요한 최소 교환 횟수를 구합니다.
문제
세모, 네모, 동그라미 모양이 일렬로 나열되어 있다. 임의의 두 위치에 있는 모양을 골라 서로 맞바꾸는 작업을 반복하여, 같은 모양끼리 각각 하나의 연속한 구간을 이루도록 정돈하려고 한다. 세 종류의 모양이 놓이는 구간의 순서는 상관없다.
현재 나열된 모양의 순서가 주어질 때, 같은 모양끼리 연속하도록 정돈하는 데 필요한 맞바꾸기의 최소 횟수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 모양의 전체 개수 이 주어진다. 은 이상 이하이다.
둘째 줄에 나열된 모양을 나타내는 개의 정수가 공백으로 구분되어 주어진다. 정수 은 세모, 정수 는 네모, 정수 은 동그라미를 나타낸다.
세 종류의 모양은 각각 최소 한 번 이상 나타난다.
출력
같은 모양끼리 연속하도록 정돈하기 위해 필요한 맞바꾸기의 최소 횟수를 출력한다.