아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

같은 숫자는 두 번까지

면접 대비

시간 제한3초메모리 제한256 MB

요약
U 이하의 정수 중 각 자릿수가 최대 두 번까지만 등장하는 가장 큰 정수를 구합니다.
난이도

보통10점 중 5점

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

문제

양의 정수를 앞자리 0 없이 10진법으로 적었을 때 같은 숫자가 세 번 이상 나오지 않으면 그 수는 조건을 만족한다고 하자. 예를 들어 2015201520152015는 조건을 만족하고, 10001000은 숫자 00이 세 번 나오므로 조건을 만족하지 않는다.

양의 정수 UU가 주어지면 L≤UL \le U이면서 조건을 만족하는 가장 큰 정수 LL을 구하라. 한 자리 수는 모두 조건을 만족하므로 이런 LL은 항상 있다.

입력

첫째 줄에 정수 UU가 주어진다 (1≤U≤10181 \le U \le 10^{18}).

출력

첫째 줄에 UU 이하이면서 같은 숫자가 세 번 이상 나오지 않는 가장 큰 정수를 출력한다.

예제4

  1. 예제 1

    입력
    2210102960
    
    예상 출력
    2210099887
    
  2. 예제 2

    입력
    1000000000000000000
    
    예상 출력
    998877665544332211
    
  3. 예제 3

    입력
    1001223343
    
    예상 출력
    998877665
    
  4. 예제 4

    입력
    20152015
    
    예상 출력
    20152015