[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)
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ