BOJ 1715 : μΉ΄λ μ λ ¬νκΈ° (Python)
λ¬Έμ
https://www.acmicpc.net/problem/1715
1715λ²: μΉ΄λ μ λ ¬νκΈ°
μ λ ¬λ λ λ¬Άμμ μ«μ μΉ΄λκ° μλ€κ³ νμ. κ° λ¬Άμμ μΉ΄λμ μλ₯Ό A, BλΌ νλ©΄ λ³΄ν΅ λ λ¬Άμμ ν©μ³μ νλλ‘ λ§λλ λ°μλ A+B λ²μ λΉκ΅λ₯Ό ν΄μΌ νλ€. μ΄λ₯Όν λ©΄, 20μ₯μ μ«μ μΉ΄λ λ¬Άμκ³Ό 30μ₯
www.acmicpc.net
μ½λ
import sys
import heapq
n = int(sys.stdin.readline())
heap = []
for i in range(n):
heapq.heappush(heap,int(sys.stdin.readline()))
total = 0
if n!=1:
while len(heap)!=0:
a = heapq.heappop(heap)
b = heapq.heappop(heap)
total += (a+b)
if len(heap)!=0:
heapq.heappush(heap,(a+b))
print(total)
νμ΄
μμμμ 10μ₯ 20μ₯ 40μ₯ λ¬Άμμ΄ μμΌλ©΄ (10+20) + (30+40) = 100 λ²μ΄ μ΅μ λΉκ΅ νμλΌκ³ νλ€.
μμ λ€μ λ°κΎΈλ©΄ (10+20) + ((10+20)+40) = 100 μ΄λ€. μ΄μ²λΌ μ€λ³΅λλ μ°μ°μ΄ μμΌλ―λ‘ μ΄ λΆλΆμ μ΅μνν΄μΌ νλ€. → μ€λ³΅λλ μ°μ°λ€μ μ΅μκ°μΌλ‘ ꡬμ±νλ©΄ λ¨
κ·Έλμ μ°μ μμ ν(μ λ ¬λ μμλ€μ μ¬μ©νκΈ° μν΄)λ₯Ό μ΄μ©νμ¬ μ΅μκ°λΌλ¦¬ λ¨Όμ λν λ€μ μ΄ λν κ°μ λ€μ μ°μ μμ νμ λ΄μμ μ°μ°μ νμ©ν μ μλλ‘ νλ€.
μμ)
μ°μ μμ νμ 10 -> 20 -> 40 μΌλ‘ λ΄κ²¨ μλ€κ³ κ°μ νλ©΄
μμ λ κ°λΌλ¦¬ λν κ²(10 + 20 = 30)μ totalμ λν΄μ€λ€. μμ§ μ°μ μμ ν λ΄μ μμκ° λ¨μμκΈ° λλ¬Έμ λν κ°μ λ€μ μ°μ μμ νμ λ£μ΄μ 30 -> 40μ΄ λλλ‘ νλ€.
λκ°μ΄ μμ λ κ°λΌλ¦¬ λν κ²(30+40 = 70)μ totalμ λν΄μ€λ€. μ΄μ μ°μ μμ ν λ΄μ λ¨μμλ μμκ° μμΌλ―λ‘ μ΄ total κ°μ΄ λ΅μ΄ λλ€.
μμ κ³Όμ μ μ°μ μμ ν λ΄μ μλ μμ μμ λκΉμ§ λ°λ³΅νλ©΄ λλ€.