-
[λ°±μ€] 18511 ν° μ ꡬμ±νκΈ° with PythonPS 2021. 12. 18. 19:33728x90λ°μν
π BOJ 18511 ν° μ ꡬμ±νκΈ°
π‘ 쑰건
N
λ³΄λ€ μκ±°λ κ°μ μμ°μ μ€μμ, μ§ν©K
μ μμλ‘λ§ κ΅¬μ±λ κ°μ₯ ν° μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±.(10 β€ N β€ 100,000,000, 1 β€ Kμ μμμ κ°μ β€ 3)
K
μ λͺ¨λ μμλ1λΆν° 9κΉμ§μ μμ°μ
λ‘λ§ κ΅¬μ±λλ€.첫째 μ€μ
Nλ³΄λ€ μκ±°λ κ°μ μμ°μ
μ€μμ,Kμ μμλ‘λ§ κ΅¬μ±λ κ°μ₯ ν° μ
λ₯Ό μΆλ ₯λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦, μ¬κ·ν¨μ μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin from itertools import product n, k = map(str, stdin.readline().split()) arr = list(map(int, stdin.readline().split())) arr.sort(reverse=True) le = len(n) res = -int(1e9) def solve(le): global res while 1: temp = list(product(arr, repeat=le)) for i in temp: t = int(''.join(map(str, i))) if int(t) <= int(n): res = max(res, t) if res == -int(1e9): le -= 1 else: return res solve(le) print(res)
π μμ λ° μ€νκ²°κ³Ό
μμ
657 3 1 5 7
μ€νκ²°κ³Ό
577
β¨οΈ λ¬Έμ νμ΄
n
μ λ¬Έμμ΄λ‘ λ°κΎΈμμ λμ κΈΈμ΄λ₯Όle
λΌλ λ³μμ μ μ₯νλ€.n
λ³΄λ€ κ°κ±°λ μμ μμ°μ μ€μ μ£Όμ΄μ§ μμ΄arr
λ‘ λ§λ€ μ μλ
μ΅λκ°μ λ§λ€κΈ° μν΄μsolve()
ν¨μ μμμ μνν΄μΌν λ‘μ§μ λ€μκ³Ό κ°λ€.itertools
μproduct()
ν¨μλ₯Ό μ¬μ©νμ¬ μμ΄arr
λ‘ λ§λ€ μλ λͺ¨λ κ²½μ°μk
μ리μ μλ₯Ό λͺ¨λ κ΅¬ν΄ λ³μtemp
μ μ μ₯νλ€.
temp
μ μμλ€μ νλμ© μννλ©΄μ, κ° μμμ ν΄λΉνλt
κ°n
λ³΄λ€ μκ±°λ κ°μμ§ νμΈνλ€
- μμ μ‘°κ±΄μ΄ λ§μ‘±λ κ²½μ°, κ²°κ³Όκ°
res
보λ€t
κ° ν΄ κ²½μ°res
λ₯Ό κ°±μ νλ€.
- μμ μ‘°κ±΄μ΄ λ§μ‘±λ κ²½μ°, κ²°κ³Όκ°
- λ§μ½
temp
λ₯Ό λͺ¨λ μννμ§λ§res
κ° κ°±μ μ΄ μλμ΄-int(1e9)
μΌ κ²½μ°,le - 1
κ°±μ μ΄ λμλ€λ©΄res
λ°ννκ³ μΆλ ₯
- λ§μ½
πΎ λλμ
temp
λ₯Ό λͺ¨λ μννμ λres
κ° κ°±μ μ΄ μλ κ²½μ°λ₯Ό μ²λ¦¬νμ§ λͺ»ν΄ 골μΉμν λ€.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1063 νΉ with Python (0) 2021.12.29 [λ°±μ€] 20546 π κΈ°μ μ λ§€λ§€λ² π with Python (0) 2021.12.18 [λ°±μ€] 14620 κ½κΈΈ with Python (0) 2021.12.13 [λ°±μ€] 13900 μμμμ κ³±μ ν© with Python (0) 2021.12.13 [λ°±μ€] 2615 μ€λͺ© with Python (0) 2021.12.12