322가 불가능하다 → 중복되는 수는 등장할 수 없다.
직접 감소하는 경우들을 살펴보자.
0/10/21 20/32 31 30/43 42 41 40/...
자릿수 별로 구별해서 살펴보자.
한자리 수 → 0
두자리 수 → 10 / 21 20 / 32 31 30 / 43 42 41 40 / ...
세자리 수 → 210 / 321 320 310
0부터 9까지의 수 중에서, 서로 다른 n(자리 수)개를 뽑아서 내림차순으로 정렬하는 것과 같다.
import sys
from itertools import combinations
input=sys.stdin.readline
n=int(input())
answer=[]
for i in range(1,11):
    for j in combinations(range(10),i):
        num=sorted(list(j),reverse=True)
        answer.append(int("".join(map(str,num))))
answer.sort()
print(answer[n] if len(answer)>n else -1)
range(1,11)로 1부터 10까지의 자릿수 i를 선정하고, range(10)=[0,1,2,,,,9] 에서 자릿수 만큼 뽑아 이를 내림차순 정렬해서 answer 리스트에 저장한다. 이후, n번째 수를 출력한다.