
일단 가장 큰 감소하는 수를 9876543210 이다.
1자리 수의 경우 > 1~9까지 9개
2자리 수의 경우
3자리 수의 경우
위에서 수를 나열하면서 보니 하나의 규칙이 보이는 것 같다.
생각해보니 조합을 사용하면 될 거 같다.
각 자리 수 별로 모든 조합을 하고 그 값들을 저장한 뒤 N번째 수를 출력하면 되는 것이다.
import sys
from itertools import combinations
input=sys.stdin.readline
n=int(input())
nums=[]
for i in range(1, 11):
comb_list=combinations(range(0, 10), i)
for comb in comb_list:
comb=list(comb)
comb.sort(reverse=True)
nums.append(int(''.join(map(str, comb))))
nums.sort()
try:
print(nums[n])
except:
print(-1)