[골드 5] 백준 1038 - 감소하는 수 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/1038
풀이
감소하는 수란 각 자릿수가 왼쪽부터 오른쪽으로 감소하는 수이다.
예를 들어서, 321, 740, 1 , 20 이런식을 의미한다.
0부터 9876543210 까지 총 1023개의 감소하는 수가 존재한 다는것을 알 수 있다.
입력 N이 주어졌을때, N번째 감소하는 수를 출력하는 문제이다.
- 만약 존재하지 않으면 -1을 출력해야 한다.
for i in range(1, 11):
for combination in combinations(list(range(10)), i):
combinations(range(10), i)는 0~9중 i개를 뽑는 조합을 구한다
예를 들어서 i 가 2라면 (0, 1), (0, 2), … , (8, 9)와 같은 모든 조합이 나온다.
이 조합들을 역순으로 정렬하여 자릿수가 감소하는 숫자들은 만드는 문제이다.
A.sort()
if len(A) <= N:
print(-1)
else:
print(A[N])
생성된 감소하는 수들을 오름차순 정렬하고, N번째 인덱스에 해당하는 값을 출력한다.
N이 감소하는 수 개수보다 크면 -1을 출력하는 문제이다.
코드
# 백준 1038 - 감소하는 수
# 분류 : 브루트 포스
from itertools import combinations
N = int(input())
A = []
for i in range(1, 11) :
for combination in combinations(list(range(10)), i) :
gamso = 0
for n in combination[::-1] :
gamso *= 10
gamso += n
A.append(gamso)
A.sort()
if len(A) <= N :
print(-1)
else :
print(A[N])
'Programming > 백준' 카테고리의 다른 글
[브론즈 1] 백준 1526 - 가장 큰 금민수 (파이썬) (0) | 2025.04.17 |
---|---|
[실버 3] 백준 1904 - 01타일 (파이썬) (0) | 2025.04.16 |
[골드 5] 백준 15686 - 치킨 배달 (파이썬) (0) | 2025.04.15 |
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬) (0) | 2025.04.15 |
[골드 4] 백준 17298 - 오큰수 (파이썬) (0) | 2025.04.15 |
댓글
이 글 공유하기
다른 글
-
[브론즈 1] 백준 1526 - 가장 큰 금민수 (파이썬)
[브론즈 1] 백준 1526 - 가장 큰 금민수 (파이썬)
2025.04.17 -
[실버 3] 백준 1904 - 01타일 (파이썬)
[실버 3] 백준 1904 - 01타일 (파이썬)
2025.04.16 -
[골드 5] 백준 15686 - 치킨 배달 (파이썬)
[골드 5] 백준 15686 - 치킨 배달 (파이썬)
2025.04.15 -
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬)
[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬)
2025.04.15