함께 식사하기
시간 제한1초메모리 제한128 MB
1부터 3까지의 값으로 이루어진 수열이 주어질 때, 수열이 비내림차순 또는 비오름차순이 되도록 카드를 바꾸는 최소 횟수를 구한다.
문제
소들은 저녁 식사 상대에 대해 유난히 까다롭습니다. 소들은 세 개의 식사 그룹(편의상 1, 2, 3번으로 부릅니다)으로 나뉘어 있으며, 같은 그룹끼리만 함께 식사하려고 합니다. 하지만 마리()의 소가 먹이를 먹으러 한 줄로 늘어섰을 때, 이들은 그룹별로 정렬되어 있지 않습니다.
각 소 는 자신의 식사 그룹을 나타내는 번호 ()가 적힌 카드를 들고 있습니다.
농부는 줄을 따라 걸어가며 카드에 적힌 옛 번호를 지우고 새 번호를 적는 방식으로 소의 그룹을 바꿀 수 있습니다. 이렇게 하여 줄을 따라 읽은 그룹 번호가 오름차순(예: 111222333) 또는 내림차순(예: 333222111)으로 정렬되도록 만들려고 합니다. 소가 서 있는 순서는 바꿀 수 없고, 오직 카드의 번호만 바꿀 수 있습니다.
최종 그룹 번호 수열이 오름차순 또는 내림차순으로 정렬되도록 만들기 위해 바꿔야 하는 카드의 최소 개수를 구하세요.
입력
- 첫째 줄: 정수 .
- 둘째 줄부터 째 줄까지: 째 줄에는 번째 소의 현재 그룹 번호 가 하나 주어집니다.
출력
- 최종 수열이 오름차순 또는 내림차순으로 정렬되도록 만드는 데 필요한 최소 변경 횟수를 나타내는 정수 하나.