import heapq
n = int(input())
heap = []
for _ in range(n):
num = int(input())
heapq.heappush(heap, num)
result = 0
while len(heap) != 1:
num1 = heapq.heappop(heap)
num2 = heapq.heappop(heap)
_sum = num1 + num2
result += _sum
heapq.heappush(heap, _sum)
print(result)
제일 작은 수끼리 비교할수록 최소가 되므로 최소힙을 이용한다
'알고리즘 > 백준 (Pyhthon)' 카테고리의 다른 글
[알고리즘] 백준 1904 01타일 / python (0) | 2020.02.09 |
---|---|
[알고리즘] 백준 1766 문제집 / 위상정렬, python (0) | 2020.02.09 |
[알고리즘] 백준 1927 최소힙 / python (0) | 2020.02.09 |
[알고리즘] 백준 1991 트리순회 / python (0) | 2020.02.09 |
[알고리즘] 백준 1939 중량제한 / python (0) | 2020.02.06 |