숫자 n이 있다고 가정하고 사전순으로 정렬된 처음 n개의 숫자를 찾아야 합니다.
따라서 입력이 n =15와 같으면 출력은 [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]
이 문제를 해결하기 위해 다음 단계를 따릅니다.
- 카운트:=1
- ans :=단일 요소 수가 있는 목록
- as
의 크기 - count :=count * 10
- 카운트하는 동안> n, 수행
- count :=count의 몫 / 10
- 카운트 :=카운트 + 1
- count mod 10이 0인 동안 do
- count :=count의 몫 / 10
- as 끝에 개수 삽입
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
예시 코드
class Solution: def solve(self, n): count = 1 ans = [count] while len(ans) < n: count *= 10 while count > n: count = count // 10 count += 1 while count % 10 == 0: count = count // 10 ans.append(count) return ans ob = Solution() n = 15 print(ob.solve(n))
입력
15
출력
[1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]