728x90
반응형
import heapq
import sys
input = sys.stdin.readline
n = int(input())
data = []
for i in range(n) : data.append(int(input()))
heapq.heapify(data)
result = 0
while data:
first = heapq.heappop(data)
if len(data)<=0: # 원소가 1개 이하일 때
break
second = heapq.heappop(data)
heapq.heappush(data, first+second )
result += first + second
for i in data :
result += i
print(result)
처음 더한 값들이 반복되어 더해지므로, 가장 작은 값부터 더해야한다.
우선순위 큐를 이용해서 작은 값을 꺼낸다.
728x90
반응형
'백준 > 구현' 카테고리의 다른 글
# 1476번 : 날짜 (0) | 2020.10.15 |
---|---|
# 2309번 : 일곱 난쟁이 (0) | 2020.10.15 |
# 18406: 럭키 스트레이트 (0) | 2020.10.07 |