본문 바로가기
Develop/알고리즘

[백준/Python] Silver I #16943 숫자 재배치

by favorcat 2023. 6. 14.
반응형
 

16943번: 숫자 재배치

두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다.  가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0

www.acmicpc.net

문제

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

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

입력

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

출력

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

제한

  • 1 ≤ A, B < 109

풀이

from itertools import permutations
import sys
input = sys.stdin.readline
a, b = map(str, input().split())
c = -1

li = []
for i in permutations(a):
  li.append(''.join(i))

for n in li:
  if n[0] == '0':
    continue
  n = int(n)
  if n < int(b):
    c = max(c, n)

print(c)
반응형

Comment