https://www.acmicpc.net/problem/1038
import sys
sys.setrecursionlimit(111111)
answer = 0
cnt = 0
arr = []
n = int(sys.stdin.readline())
def go(num, prev):
if num < 0:
return
arr.append(int(prev))
for i in range(num):
go(num - i - 1, prev + str(num - i - 1))
for i in range(0, 10):
go(i, str(i))
if len(arr) <= n:
print(-1)
else:
print(sorted(arr)[n])
모처럼 쉬는 날이라 풀어봤는데 너무 오랜만에 풀어서 시간이 조금 걸렸다.재귀를 통한 완전탐색 문제들은 코딩테스트 2-3번 사이에 종종 나오므로 잘 숙지해 둘 것.