Search
Duplicate

감소하는 수

주차
22
문제번호
1038
언어
Python
티어
골드
유형
브루트포스
nj_Blog
nj_상태
이해도
풀이
사람
이해도 2
13 more properties

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
복사