Logo
(追記) (追記ここまで)

1881번 - 공 바꾸기

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

문제

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

힌트

출처

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /