수 이어 쓰기

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

요약
1부터 N까지 이어붙인 문자열에서 일부 숫자를 지운 뒤 남은 부분 문자열이 주어질 때, 가능한 가장 작은 N을 구합니다.
난이도

어려움10점 중 8점

유형
문자열 매칭, 이분 탐색, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

1부터 N까지의 모든 정수를 차례대로 공백 없이 이어 쓰면 123456789101112...N과 같은 문자열이 된다.

이 문자열에서 일부 숫자를 지웠고, 숫자를 하나도 지우지 않았을 수도 있다. 남은 숫자들은 원래 순서를 유지한 채 이어 붙여져 있다.

남은 숫자 문자열이 주어질 때, 이 문자열을 만들 수 있는 가능한 N 중 최솟값을 구하시오.

입력

첫째 줄에 지워진 뒤 남은 숫자 문자열이 주어진다. 문자열의 길이는 최대 3,000이다.

출력

주어진 문자열을 만들 수 있는 가능한 N 중 최솟값을 출력한다.

예제8

  1. 예제 1

    입력
    1234
    
    예상 출력
    4
    
  2. 예제 2

    입력
    234092
    
    예상 출력
    20
    
  3. 예제 3

    입력
    999909
    
    예상 출력
    49
    
  4. 예제 4

    입력
    82340329923
    
    예상 출력
    43
    
  5. 예제 5

    입력
    32098221
    
    예상 출력
    61
    
  6. 예제 6

    입력
    1111111
    
    예상 출력
    14
    
  7. 예제 7

    입력
    00000000000000000000000000000000000000000000000000000000000000000000000
    
    예상 출력
    400
    
  8. 예제 8

    입력
    345029834023049820394802334909240982039842039483294792934790209
    
    예상 출력
    279