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)
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 1213: 팰린드롬 만들기 (Python) (0) | 2024.04.29 |
---|---|
백준 알고리즘 11000: 강의실 배정 (Python) (0) | 2024.04.29 |
백준 알고리즘 11051: 이항 계수 2 (Python) (0) | 2024.04.25 |
백준 알고리즘 2531: 회전 초밥 (Python) (1) | 2024.04.25 |
백준 알고리즘 2559: 수열 (Python) (0) | 2024.04.25 |