시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB198534633.577%

문제

0부터 9까지의 숫자가 각각 적힌 열 개의 공과, 0부터 9까지의 숫자 중 하나가 적힌 여러 장의 카드들이 있다. 그리고 각각 공 하나씩을 담을 수 있는 상자 네 개가 있다. 같은 숫자의 카드는 여러 장 있을 수 있지만, 공은 하나씩이다.

카드를 한 장씩 뽑아서 그에 해당하는 공을 상자 중 하나에 넣어야 하며, 다음과 같은 규칙을 따른다.

  1. 해당하는 공이 이미 상자 중 하나에 들어가 있을 경우엔 아무 일도 하지 않는다.
  2. 빈 상자가 있으면 해당하는 공을 거기에 그냥 넣으면 된다. (삽입 연산)
  3. 빈 상자가 없을 경우엔 이미 상자에 들어가 있는 공 중 하나을 빼내고, 새 공으로 교환해 넣어야 한다. (교환 연산)

임의 개수의 카드를 뽑았을 때, 삽입․교환 연산을 최소한으로 하여 순서대로 작업을 처리하는 프로그램을 작성하여 보자.

입력

첫 줄에 뽑은 카드의 장수 n이 주어진다. (0 ≤ n ≤ 100) n이 0보다 크면 둘째 줄에 n개의 숫자가 주어지는데, 뽑힌 카드에 적힌 숫자를 순서대로 나타낸다.

출력

첫 줄에 필요한 최소한의 연산 수를 출력한다.

예제 입력 1

9
1 2 3 4 5 1 1 3 4

예제 출력 1

5

예제 입력 2

9
1 2 0 4 5 6 4 1 2

예제 출력 2

6

출처