반응형
n = int(input())
count = 9
dis = 2
minicount = 0
result = []
result1 = []
def backtracking():
global count
global dis
global minicount
if n >= 1023:
print(-1)
return
if 0 <= n <= 9:
print(n)
return
if count == n:
return
if len(result) == dis and result[0] == 9:
for i in range(dis-1):
if result[i]-1 != result[i+1]:
break
else:
minicount += 1
if minicount == dis-1:
count += 1
if count == n:
print("".join(map(str, result)))
dis += 1
del result[:]
minicount = 0
else:
minicount = 0
if len(result) == dis:
count += 1
if count == n:
print("".join(map(str, result)))
return
for i in range(0,10):
if len(result) > 0 and i >= result[-1]:
continue
result.append(i)
backtracking()
if len(result) > 0:
result.pop()
else:
pass
backtracking()
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 1697번: 숨바꼭질 파이썬 코드(bfs) (0) | 2021.03.17 |
---|---|
백준 7576번: 토마토 파이썬 코드(bfs) (0) | 2021.03.17 |
백준 4963번: 섬의 개수 파이썬 코드(dfs) (0) | 2021.02.14 |
백준 1010번: 다리 놓기 파이썬 코드 (2) | 2021.02.11 |
백준 1012번: 유기농 배추 파이썬 코드(dfs) (0) | 2021.02.11 |