https://www.acmicpc.net/problem/16943


 

문제 해결을 위한 과정

이 문제의 경우 순열을 이용하면 쉽게 해결할 수 있습니다. 최대가 10^9 이므로 9자리 숫자를 순열로 배치하는 수입니다.

9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362880 이므로 시간이 충분합니다. 

첫 번째 숫자가 0인 것을 제외해야 하므로 문자열로 바꾸면 쉽게 해결할 수 있습니다.


소스코드
from itertools import permutations
a, b = input().split()
ans = -1
arr = []
for i in range(len(a)):
  arr.append(a[i])

for p in permutations(a, len(a)):
  str = ""
  for i in range(len(list(p))):
    str += p[i]
  if str[0] == "0":
    continue
  else:
    temp = int(str)
    if temp < int(b):
      ans = max(ans, temp)
print(ans)

+ Recent posts