함께 식사하기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

소들은 저녁 식사 상대에 대해 유난히 까다롭습니다. 소들은 세 개의 식사 그룹(편의상 1, 2, 3번으로 부릅니다)으로 나뉘어 있으며, 같은 그룹끼리만 함께 식사하려고 합니다. 하지만 $N$마리($1 \le N \le 30,000$)의 소가 먹이를 먹으러 한 줄로 늘어섰을 때, 이들은 그룹별로 정렬되어 있지 않습니다.

각 소 $i$는 자신의 식사 그룹을 나타내는 번호 $D_i$($1 \le D_i \le 3$)가 적힌 카드를 들고 있습니다.

농부는 줄을 따라 걸어가며 카드에 적힌 옛 번호를 지우고 새 번호를 적는 방식으로 소의 그룹을 바꿀 수 있습니다. 이렇게 하여 줄을 따라 읽은 그룹 번호가 오름차순(예: 111222333) 또는 내림차순(예: 333222111)으로 정렬되도록 만들려고 합니다. 소가 서 있는 순서는 바꿀 수 없고, 오직 카드의 번호만 바꿀 수 있습니다.

최종 그룹 번호 수열이 오름차순 또는 내림차순으로 정렬되도록 만들기 위해 바꿔야 하는 카드의 최소 개수를 구하세요.

입력

  • 첫째 줄: 정수 $N$.
  • 둘째 줄부터 $N+1$째 줄까지: $i+1$째 줄에는 $i$번째 소의 현재 그룹 번호 $D_i$가 하나 주어집니다.

출력

  • 최종 수열이 오름차순 또는 내림차순으로 정렬되도록 만드는 데 필요한 최소 변경 횟수를 나타내는 정수 하나.