Memo
로직 설명
•
작은 숫자부터 감소하는 수인지 조사합니다. (1, 2, 3, 4, ... )
•
로직 설명을 위한 예시 →
1.
3221이 감소하는 수 인지 조사한다면 100의 자리 수와 10의 자리수가 같으므로 3221에 100을 더하고 10의 자리와 1의 자리를 0으로 만들어 줍니다.
(3221 → 3300)
2.
1번과 똑같은 메커니즘을 적용시켜서, 4300을 만듦니다.
3.
마찬가지로 같은 메커니즘으로 4310이 됩니다.
4.
4310은 감소하는 수이므로 세줍니다.
어려웠던 부분
•
아이디어가..
Code
제출 날짜
@6/6/2021
import sys
N = int(sys.stdin.readline().strip())
i = 0
num = 0
while (i < N):
if (len(str(num)) == 1):
i+=1
num = i
continue
tmp = i
num += 1
while (tmp == i):
if (num > 9876543210):
print(-1)
exit(0)
str_num = str(num)
for j in range(1,len(str_num)):
if (str_num[j - 1] <= str_num[j]):
num = num + 10 ** (len(str_num) - j) - (num % (10 ** (len(str_num) - j)))
break
else:
i += 1
print(num)
Python
복사