수 지우기

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

요약
숫자 문자열에서 각 숫자별로 정해진 개수만큼 삭제해서 남은 숫자들로 만들 수 있는 가장 큰 수를 찾는 문제입니다.
난이도

보통10점 중 6점

유형
그리디, 스택, 문자열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

N자리 숫자열이 주어진다. 이 숫자열에서 지정된 숫자들을 모두 지워야 한다.

같은 숫자가 여러 번 있으면 그중 어느 위치의 숫자를 지울지 선택할 수 있다. 12534에서 5를 지우면 1234가 되고, 1253452에서 5를 하나 지우면 123452 또는 125342를 만들 수 있다.

지울 숫자들을 모두 지운 뒤 남는 숫자열이 가능한 한 큰 수가 되도록 하려 한다. 원래 숫자열과 지워야 할 숫자들이 주어질 때, 만들 수 있는 가장 큰 남은 숫자열을 구하라.

입력

첫째 줄에 N자리 숫자열 S가 주어진다. N은 1 이상 1,000 이하이다.

둘째 줄에 지워야 할 숫자들이 공백 없이 주어진다. 지워야 할 숫자의 개수는 N보다 작고, 주어진 숫자열에서 이 숫자들을 모두 지울 수 있는 입력만 주어진다.

출력

지정된 숫자들을 모두 지운 뒤 만들 수 있는 가장 큰 남은 숫자열을 출력한다.

예제6

  1. 예제 1

    입력
    12534
    5
    
    예상 출력
    1234
    
  2. 예제 2

    입력
    123123
    1322
    
    예상 출력
    31
    
  3. 예제 3

    입력
    112352
    1123
    
    예상 출력
    52
    
  4. 예제 4

    입력
    123456654321
    612534
    
    예상 출력
    654321
    
  5. 예제 5

    입력
    654321123456
    612534
    
    예상 출력
    654321
    
  6. 예제 6

    입력
    2654982765982365
    2345978
    
    예상 출력
    698265265