저녁 먹는 소들
면접 대비시간 제한1초메모리 제한128 MB
1과 2로 이루어진 수열이 주어질 때, 오름차순이 되도록 바꿔야 하는 값의 최소 개수를 구한다.
문제
소들은 저녁 식사 상대에 대해 무척 까다롭습니다. 소들은 두 그룹(각각 1번과 2번)으로 나뉘어 있으며, 반드시 순서대로 식사하려고 합니다. 즉 줄의 앞쪽에는 1번 그룹이, 뒤쪽에는 2번 그룹이 와야 합니다. 소들이 먹이 구역으로 들어가려고 축사 앞에 줄을 설 때 문제가 시작됩니다.
각 소 는 자신의 식사 그룹을 나타내는 카드를 들고 있으며, 카드에는 ()가 새겨져 있습니다. 전체 ()마리의 소가 줄을 섰지만, 카드 기준으로 정렬되어 있지 않다는 것이 한눈에 보입니다.
농부 존은 줄을 따라 걸어가며 소의 그룹 배정을 바꿉니다. 기존 숫자를 지우고 새 숫자를 적는 방식입니다. 이렇게 해서 카드가 오름차순으로 정렬된 상태(예: 112222나 111122)를 만들려고 합니다. 드물게는 한 그룹만 남을 수도 있습니다(예: 1111이나 222).
농부 존은 게으르지만 궁금합니다. 올바른 식사 그룹 배치를 만들기 위해 바꿔야 하는 카드의 최소 개수는 몇 개일까요? 그는 카드의 숫자만 바꿀 수 있고, 줄에 선 소들의 순서를 바꿀 수는 없습니다.
입력
- 첫째 줄: 정수 .
- 둘째 줄부터 째 줄까지: 째 줄에는 소 의 식사 그룹을 나타내는 정수 가 하나 주어집니다.
출력
- 한 줄에 정수 하나: 소들을 위 설명처럼 식사 그룹으로 정렬하기 위해 농부 존이 바꿔야 하는 카드의 최소 개수.