1. SOLUTION
X와 구성이 같은 숫자들을 구하기 위해 itertools 라이브러리를 사용해 풀었다.
근데 풀고나서 문제 카테고리를 보니 백트래킹이어서 띠용스러웠다.
백트래킹으로 안풀어봐서 모르겠지만 훨씬 오래걸릴것 같은 느낌...?
시간 나면 백트래킹으로 한번 풀어보면 좋을 것 같다.
permutations로 구한 숫자들 중 X보다 큰 것들만 새로운 리스트(nums)에 넣어주고,
리스트가 비어있지 않을 경우에는 0번째 인덱스를, 비어있을 경우에는 0을 출력해 주었다.
+) permutations/combinations 사용 시 list로 형변환 해 줄 것!
(리스트 안에 set가 들어간 형태로 변환됨)
2. CODE
import sys
from itertools import permutations
X = sys.stdin.readline().strip()
lst = list(permutations(X, len(X)))
nums = []
for i in lst:
num = int(''.join(i))
if num > int(X) and num not in nums:
nums.append(num)
nums.sort()
if nums:
print(nums[0])
else:
print(0)
댓글