[python3] μ΄μ½ν - λ§λ€ μ μλ κΈμ‘ (ch.11 그리λ - μ νλ³ κΈ°μΆλ¬Έμ )
μ°Έκ³ ) μ΄κ²μ΄ μ·¨μ
μ μν μ½λ©ν
μ€νΈλ€ with νμ΄μ¬ μ±
μ κΈ°λ°μΌλ‘ μμ±λ λ¬Έμ μ μ½λμ
λλ€.
λ°λΌμ λ¬Έμ λ μμΈνκ² μ μ§ μκ³ , κ°λ¨ν μ€λͺ
κ³Ό μ μ½λλ§ μ¬λ¦¬κ² μ΅λλ€.
λ§λ€ μ μλ κΈμ‘ (ebookκΈ°μ€ p.513)
- Nκ°μ λμ
- Nκ°μ λμ μΌλ‘ λ§λ€ μ μλ μμ μ μ κΈμ‘ μ€ μ΅μκ°μꡬνλ νλ‘κ·Έλ¨μ ꡬνμμ€
##### μ
λ ₯쑰건
- 첫μ¨μ€ λμ μ κ°―μ Nκ° (1 <= N <= 1000 )
- λμ¨μ€, ννμ λ¨μλ₯Ό λνλ΄λ Nκ°μ μμ°μ.ννμ λ¨μλ 1000000μ΄νμ μμ°μ
<1μ°¨μλ λ¬Έμ νμ΄>
μ°μ 그리λ λ¬Έμ νμ΄μ λν κ²½νκ³Ό λ
Ένμ°κ° μμκΈ° λλ¬Έμ μ΄λ»κ²λ νμ΄λ³΄μ νκ³ , forλ¬ΈμΌλ‘ λλ €λ°μλ€.
μΌλ¨, μκ°ν΄λΈ κ²μ, 'μ΅μκ°'μ ꡬνλ κ²μ΄κΈ° λλ¬Έμ μ«μ λκ°λ‘ λν΄μ λμ€λ μ«μλ€λ§ λΉκ΅νλ©΄ λμ§μμκΉ? μλ€. νμ§λ§, μκ°μ μ νμ΄ μλ μ½λ©ν
μ€νΈ νΉμ±μ μμ λ΄ μ½λλ μ νμκ° 1μ΄ λ΄λ‘ λμκ°μ§ μκ³ λ§€μ°λ§€μ° λλ €μ μΆλ ₯μ‘°μ°¨ μλλ μ½λκ° λμ΄λ²λ Έλ€. .. γ
γ
γ
γ
μκ°λ³΅μ‘λ κ³ λ € μνλ νλμ½λ© μ λ¬Έκ°λ€ λ...
n = int(input())
money_type = list(map(int, input().split()))
def solution(n, money_type):
result = []
for i in range(0, n):
for j in range(i+1, n):
price = money_type[i] + money_type[j]
result.append(price)
result.sort()
while True:
for i in range(1, 10000000):
if i in result:
pass
else:
answer = i
break
return answer
solution(n, money_type)
<2μ°¨μλ λ¬Έμ νμ΄ : μ λ΅μ½λ>
##### greedy TIP!!
1. μ΅μκ°μ ꡬνλ λ¬Έμ λ 무쑰건 forλ¬Έμ λλ¦΄κ² μλλΌ, μ€λ¦ μ°¨μμΌλ‘ λκ³ μμ κ²λΆν° λΉκ΅ν΄κ°λ©΄μ νμ΄μΌνλ€.
2. λμ ν©κ³Ό ννλ¨μλ₯Ό λΉκ΅ν΄κ°λ©΄μ ꡬν΄λ³Έλ€. ννλ¨μκ° λμ ν© λ³΄λ€ ν΄ κ²½μ°, κ·Έ μ¬μ΄μ κ°μ΄ μ‘΄μ¬νλ€λ λ»μ΄λ€.
λμ ν©μ forλ¬ΈμΌλ‘ μ°¨κ·Όμ°¨κ·Ό ꡬν΄λκ°λ©΄μ, μ«μ 1λΆν° λΉκ΅ν΄ λκ°λ€λ κ²μ΄ ν¬μΈνΈμλ€. λμ ν©λ³΄λ€ ννλ¨μκ° ν΄ κ²½μ°μ κ·Έ μ¬μ΄μ λ§λ€ μ μλ μκ° μ‘΄μ¬νλ€λ λ»μμ νμ κΈ°μ΅νκ³ λ€μ 그리λ λ¬Έμ μμλ κΌ μ μ©ν΄μ νμ΄λ΄μΌκ² λ€.
n = int(input())
money_type = list(map(int, input().split()))
def solution(n, money_type):
money_type.sort()
result = 1
for money in money_type:
if result < money:
break
result += money
return result
solution(n, money_type)