์ƒˆ์†Œ์‹

๐Ÿงฎ PS

๋ฐฑ์ค€ (boj) Python - 18511 ๋ฒˆ : ํฐ ์ˆ˜ ๊ตฌ์„ฑํ•˜๊ธฐ

  • -

๋ฌธ์ œ ๋งํฌ  : https://www.acmicpc.net/problem/18511

 

18511๋ฒˆ: ํฐ ์ˆ˜ ๊ตฌ์„ฑํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— N, K์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค. (10 ≤ N ≤ 100,000,000, 1 ≤ K์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜ ≤ 3) ๋‘˜์งธ ์ค„์— K์˜ ์›์†Œ๋“ค์ด ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์›์†Œ๋Š” 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ž์—ฐ์ˆ˜๋‹ค. ๋‹จ, ํ•ญ์ƒ K์˜ ์›์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

 

 

 

 

 

 

 

 

* ์ƒ๊ฐ

์ตœ๋Œ€ 8์ž๋ฆฌ์ˆ˜์— 3๊ฐ€์ง€ ์š”์†Œ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. - ์ˆœ์—ด์ด์ง€๋งŒ ์ค‘๋ณต์ด ํ—ˆ์šฉ๋œ๋‹ค.

๋”ฐ๋ผ์„œ itertools-product๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 

์ฃผ์˜ํ• ์  : ๋งŒ์•ฝ N = 1938์ด๊ณ  ๋ฐฐ์—ด์€ {8,9,7}์ด๋ผ๊ณ  ํ•˜๋ฉด ์ถœ๋ ฅํ•ด์•ผ ๋  ์ˆ˜๋Š” 999๋กœ 

์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์ด๋ถ€๋ถ„์„ ์ฃผ์˜ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” length๋ฅผ 1์”ฉ ๊นŽ์•„์ฃผ๋ฉด์„œ ๋ฐ˜๋ณตํ•˜๋„๋ก ์ž‘์„ฑ

ํ–ˆ๋‹ค.

 

itertools-product ํฌ์ŠคํŒ…

https://infinitt.tistory.com/114

 

์ˆœ์—ด๊ณผ ์กฐํ•ฉ ( n! , nPr , nCr ) - (itertools) combinations, permutations + ์ค‘๋ณต์ˆœ์—ด, ์ค‘๋ณต์กฐํ•ฉ

*n! (Factorial, ํŒฉํ† ๋ฆฌ์–ผ) 1๋ถ€ํ„ฐ ์ž์—ฐ์ˆ˜ n๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณฑํ•˜๋Š”๊ฒƒ. (์ฃผ์˜ 0! = 1) math๋ชจ๋“ˆ ํŒŒ์ด์ฌ์—์„œ ํŒฉํ† ๋ฆฌ์–ผ์„ ๊ตฌํ• ๋•Œ๋Š” math๋ชจ๋“ˆ์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. import math math.factorial(5) *nPr (perm..

infinitt.tistory.com

 

 

 

*์ •๋‹ต ์ฝ”๋“œ (Python)
from itertools import product

N,K = map(int,input().split())
arr = list(map(str,input().split()))
length = len(str(N))

while(True):
    temp = list(product( arr, repeat=length))
    answer = []

    for i in temp :
        if int("".join(i)) <= N :
            answer.append(int("".join(i)))

    if len(answer)>= 1:
        print(max(answer))
        break
    else : 
        length -=1

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.