반응형
문제
두 정수 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)
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Silver I #2667 단지번호붙이기 (0) | 2023.06.15 |
---|---|
[백준/Python] Silver II #2961 도영이가 만든 맛있는 음식 (1) | 2023.06.14 |
[백준/Python] Silver V #5426 비밀 편지 (0) | 2023.06.14 |
[백준/Python] Gold IV #10830 행렬 제곱 (0) | 2023.06.13 |
[백준/Python] Silver V #11116 교통량 (0) | 2023.06.13 |
Comment