728x90
문제
문제 링크 : https://www.acmicpc.net/problem/16943
16943번: 숫자 재배치
두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0
www.acmicpc.net
CODE
from itertools import permutations
a, b = input().split()
b = int(b)
c = -1
a_list = []
for item in permutations(a):
a_list.append(''.join(item))
for i in a_list:
if i[0] == '0': # 0으로 시작하는 경우
continue
i = int(i)
if i < b:
c = max(c, i)
print(c)
풀이
permutations를 사용하여 a의 가능한 순열을 다 구한 후,
0으로 시작하는지, b보다 작은지 검사한 후 c과 비교하여 넣는다
결과
728x90
'Baekjoon' 카테고리의 다른 글
[BOJ / 백준] 17088번 등차수열 변환 파이썬(Python) 문제 풀이 (0) | 2021.07.31 |
---|---|
[BOJ / 백준] 3425번 고스택 파이썬(Python) 문제 풀이 (0) | 2021.07.26 |
[BOJ / 백준] 16938번 캠프 준비 파이썬(Python) 문제 풀이 (0) | 2021.07.25 |
[BOJ / 백준] 16937번 두 스티커 파이썬(Python) 문제 풀이 (5) | 2021.07.23 |
[BOJ / 백준] 16936번 나3곱2 파이썬(Python) 문제 풀이 (0) | 2021.07.23 |