πŸ’» Coding Problems Solving/Permutations | Combinations

[BOJ 1038] κ°μ†Œν•˜λŠ” 수

Kim_dev 2022. 6. 30. 04:54

[BOJ 1038] κ°μ†Œν•˜λŠ” μˆ˜

 

1. 문제 : Link

N번째 κ°μ†Œν•˜λŠ” 수λ₯Ό μ°ΎλŠ” 문제

 

2. 풀이

κ°μ†Œν•˜λŠ” μˆ˜κ°€ λ˜λŠ” λͺ¨λ“  쑰합을 κ³ λ €ν•΄μ„œ 배열에 μ €μž₯ν•˜κ³ , n값에 λ”°λΌμ„œ return

λ§Œμ•½ 인덱슀λ₯Ό λ²—μ–΄λ‚œλ‹€λ©΄ μ΅œλŒ€κ°’μ„ λ²—μ–΄λ‚˜λŠ” 수이기 λ•Œλ¬Έμ— -1 

 

그리고 0~9의 숫자λ₯Ό ν•˜λ‚˜μ”© μ‘°ν•©μœΌλ‘œ κ³„μ‚°ν•œ μ΄μœ λŠ” μ€‘λ³΅λ˜λŠ” μˆ«μžκ°€ μ‘΄μž¬ν•˜λŠ” μˆœκ°„ κ°μ†Œν•˜λŠ” μˆ˜κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έ

 

 

3. μ½”λ“œ

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

nums = list()              
for i in range(1, 11):      
    for comb in combinations(range(0, 10), i):  
        comb = list(comb)
        comb.sort(reverse=True)                    
        nums.append(int("".join(map(str, comb))))

nums.sort()   

try:
    print(nums[n])
except:     
    print(-1)