728x90
⚠️ 내맘대로 작성한 코드이기 때문에 비합리적 진행과 근거없는 추론이 있을 수 있습니다!⚠️
https://www.acmicpc.net/problem/1174
Code
import sys
input = sys.stdin.readline
num = int(input())
def search(kwd):
result.append(int(kwd))
for j in range(0,int(kwd[-1])):
search(kwd + str(j))
if num > 1023:
print(-1)
else:
result = []
for i in range(10):
search(str(i))
print(sorted(result)[num-1])
Code 필수 요소
1. 줄어드는 수 서치 알고리즘(재귀)
2. 정렬
이것만 생각해내면 절반은 끝났다.
// if 조건
저 범위를 넘어가면 조건을 넘어간다.
// 줄어드는 수 서치 알고리즘
result 배열을 생성하고, for문을 통해서 0부터 9까지 숫자를 활용한다. 여기서 줄어드는 수를 서치하는 알고리즘을 활용 했다.
for문의 3번째 사이클인 2로 설명하겠다.
search(str(2))로 search 함수를 호출한다.
그렇게 될 경우 int타입 2를 result배열에 추가한다.
다시 for문을 통해 0부터 2까지의 숫자를 재귀함수를 통해 search함수를 호출한다.
2
20
21
210
이러한 순서대로 result배열에 추가된다.
// 정렬
sorted라는 함수를 사용해서 한방에 해결했다.
파이썬 헷갈린다... C로 짠적이 있던 코드라서 알고리즘은 떠올렸는데 파이썬으로 활용하는게 어렵드라. 췟...
-꿑-
728x90