[백준] 1038 감소하는 수 - python 파이썬

2024. 12. 10. 17:44·코딩테스트/백준

문제

 

 

처음 이 문제를 접했을 때는 감이 전혀 안잡혔다.. 범위가 너무 커서 하나하나 구하는 방식으로는 무조건 시간초과가 날 것 같은데 딱히 다른 방법이 생각나질 않았다

 

그래서 구글링의 도움을 받은 결과 "조합" 을 사용해서 풀 수 있다는 것을 알게 되었다.

 

 

조합이면 더 시간 초과 나는거 아냐?? 할 수도 있지만 사실 최대 감소하는 수는 정해져있다 9876543210 으로 10자리 숫자이다.

그러므로 10자리 숫자까지의 조합을 구해주면 되는데

 

여기서 중요한건

 

감소하는 수  = 서로 다른 숫자의 모임

 

이라는 것이다. 동일한 숫자가 있는 경우는 감소하는 수가 아니기때문에 감소하는 수는 각 자리의 숫자가 모두 다르다.

그리고 각 자리의 숫자가 내림차순으로 정렬된 것으로 보면 된다.

 

 

결론은

 

1자리 숫자부터 10자리 숫자까지 구하는 것 =  숫자 1개의 조합 ~ 숫자 10개의 조합

 

이 되며 이 숫자의 조합이 내림차순 정렬 된 것이라고 생각해주면 된다.

 

 

 

정답 코드

from itertools import combinations
n = int(input())

ans = []
#i자리수 숫자 조합 구하기
for i in range(1,11):
    #0부터 9까지 숫자 중 i개의 조합
    for j in combinations(range(10),i):
        #감소하는 수 이므로 내림차순 정렬
        num = sorted(list(j), reverse= True)
        ans.append(int("".join(map(str,num))))
ans.sort()
print(ans[n] if len(ans)>n else -1)

 

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 2212번 센서 - python파이썬  (0) 2024.12.18
[백준] 5557번 1학년 - python 파이썬  (0) 2024.12.17
[백준] 14179번 빗물 - python 파이썬  (1) 2024.11.27
[백준] 2166번 다각형의 면적 - python 파이썬  (2) 2024.11.27
[백준] 9205번 맥주마시면서 걸어가기 - python 파이썬  (2) 2024.11.20
'코딩테스트/백준' 카테고리의 다른 글
  • [백준] 2212번 센서 - python파이썬
  • [백준] 5557번 1학년 - python 파이썬
  • [백준] 14179번 빗물 - python 파이썬
  • [백준] 2166번 다각형의 면적 - python 파이썬
hiwon
hiwon
천천히 굴러가는 코딩일기
  • hiwon
    하이원의 코딩 일기
    hiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 프론트엔드 (0)
        • react (0)
      • 백엔드 (13)
        • node.js (1)
        • spring (6)
      • 코딩테스트 (57)
        • 백준 (41)
        • 프로그래머스 (15)
      • 프로디지털아카데미 (9)
        • 클라우드 (1)
        • JavaScript (1)
      • github (1)
      • AWS (2)
      • Infra (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드
    UnionFind
    코테
    알고리즘
    python
    IT기획
    프로그래머스
    BFS
    깃허브
    파이썬
    투포인터
    그리디
    코딩테스트
    EC2
    다익스트라
    MSA
    Java
    bastion host
    AWS
    신한투자증권
    spring
    kdt교육
    알파코
    백트래킹
    github
    알파코캠퍼스
    백준
    프디아
    K디지털트레이닝
    프로디지털아카데미
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hiwon
[백준] 1038 감소하는 수 - python 파이썬
상단으로

티스토리툴바