숫자 재배치

면접 대비

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

요약
A와 B가 주어질 때, A의 자릿수를 재배열해 0으로 시작하지 않으면서 B보다 작은 가장 큰 수 C를 구하고, 없으면 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다.

가능한 C 중에서 B보다 작으면서 가장 큰 값을 구해보자. C는 0으로 시작하면 안 된다.

입력

첫째 줄에 두 정수 A와 B가 주어진다.

출력

B보다 작은 C 중에서 가장 큰 값을 출력한다. 그러한 C가 없는 경우에는 -1을 출력한다.

제한

  • 1 ≤ A, B < 10^9

예제3

  1. 예제 1

    입력
    1234 3456
    
    예상 출력
    3421
    
  2. 예제 2

    입력
    1000 5
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    789 123
    
    예상 출력
    -1