Sμ¬μμλ κ° λΆμμ νμν λ¬Όνμ μ§μν΄ μ£ΌκΈ° μν΄ λΆμλ³λ‘ λ¬Όνμ ꡬ맀νλλ° νμν κΈμ‘μ μ‘°μ¬νλ€. κ·Έλ¬λ, μ 체 μμ°μ΄ μ ν΄μ Έ μκΈ° λλ¬Έμ λͺ¨λ λΆμμ λ¬Όνμ κ΅¬λ§€ν΄ μ€ μλ μλ€. κ·Έλμ μ΅λν λ§μ λΆμμ λ¬Όνμ κ΅¬λ§€ν΄ μ€ μ μλλ‘ νλ €κ³ νλ€. λ¬Όνμ κ΅¬λ§€ν΄ μ€ λλ κ° λΆμκ° μ μ²ν κΈμ‘λ§νΌμ λͺ¨λ μ§μν΄ μ€μΌ νλ€. μλ₯Ό λ€μ΄ 1,000μμ μ μ²ν λΆμμλ μ νν 1,000μμ μ§μν΄μΌ νλ©°, 1,000μλ³΄λ€ μ μ κΈμ‘μ μ§μν΄ μ€ μλ μλ€. λΆμλ³λ‘ μ μ²ν κΈμ‘μ΄ λ€μ΄μλ λ°°μ΄ dμ μμ° budgetμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΅λ λͺ κ°μ λΆμμ λ¬Όνμ μ§μν μ μλμ§ return νλλ‘ ν¨μλ₯Ό μμ±νλΌ.
d
λ λΆμλ³λ‘ μ μ²ν κΈμ‘μ΄ λ€μ΄μλ λ°°μ΄μ΄λ©°, κΈΈμ΄(μ 체 λΆμμ κ°μ)λ 1 μ΄μ 100 μ΄νμ΄λ€.d
μ κ° μμλ λΆμλ³λ‘ μ μ²ν κΈμ‘μ λνλ΄λ©°, λΆμλ³ μ μ² κΈμ‘μ 1 μ΄μ 100,000 μ΄νμ μμ°μμ΄λ€.budget
μ μμ°μ λνλ΄λ©°, 1 μ΄μ 10,000,000 μ΄νμ μμ°μμ΄λ€.def budget(d, bg):
max_d = 0
for i, v in enumerate(sorted(d)):
max_d += v
if max_d > budget:
return i
return len(d)
μ΅λν λ§μ λΆμλ₯Ό μ§μν΄μΌ νλ―λ‘ κΈμ‘ 리μ€νΈλ₯Ό μ€λ¦μ°¨μμΌλ‘ μ λ ¬ν ν, μμλλ‘ λν΄μ£Όμλ€. λ§μ½ λν κ°μ΄ μμ°λ³΄λ€ μ΄κ³Όλμμ κ²½μ° κ·Έ λμ μΈλ±μ€κ° μ΄κ³ΌλκΈ° μ κΉμ§ λν΄μ§ λΆμμ κ°μμ΄λ―λ‘ λ¦¬ν΄νλλ‘ νλ€.
def budget(d, bg):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
μβ¦ pop()
ν¨μλ₯Ό μ΄μ©νλ©΄ while
λ¬ΈμΌλ‘ μ λ§ κ°λ¨νκ² λλ΄λ²λ¦΄ μ μμλ€.
while
λ¬Έμ μ¬μ©νκ³ λ μΆμλλ° ν¨μ¨μ μΌλ‘ μ¬μ©ν λ°©λ²μ΄ λ μ€λ₯΄μ§ μμ for
λ¬ΈμΌλ‘ λ°κΎΈμ΄ νμλλ°β¦λ°
μ΄λ κ² λ ν μ λ°°μ°κ³ κ°λ€.