숫자 만들기

면접 대비

시간 제한2초메모리 제한128 MB

요약
0부터 9까지 각 숫자 카드의 개수가 주어질 때, 인접한 숫자가 같지 않고 0으로 시작하지 않도록 카드를 골라 만들 수 있는 가장 큰 수를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 문자열, 힙
정답자
아직 제출이 없습니다

문제

세준이는 0부터 9까지의 숫자 카드를 가지고 있다. 각 카드에는 숫자 하나가 적혀 있으며, 주어진 카드 중 일부 또는 전부를 골라 하나의 수를 만들 수 있다.

만드는 수는 0으로 시작할 수 없고, 서로 이웃한 두 자리의 숫자가 같아서는 안 된다. 단, 0만으로 수를 만들 수 있는 경우에는 한 자리 수 0을 만들 수 있다.

각 숫자 카드를 몇 장씩 가지고 있는지가 주어질 때, 위 조건을 만족하면서 만들 수 있는 가장 큰 수를 구하시오.

입력

첫째 줄에 0부터 9까지 각 숫자 카드의 개수 10개가 차례대로 주어진다. 전체 카드 수는 1 이상 50 이하이다.

출력

조건을 만족하면서 만들 수 있는 가장 큰 수를 첫째 줄에 출력한다.

예제4

  1. 예제 1

    입력
    0 1 4 4 1 4 0 2 2 0
    
    예상 출력
    878754535352323212
    
  2. 예제 2

    입력
    3 0 0 0 0 0 0 0 0 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4 1 2 0 0 0 0 0 0 0
    
    예상 출력
    202010
    
  4. 예제 4

    입력
    4 1 8 0 0 0 0 0 0 0
    
    예상 출력
    21202020202