728x90
반응형

기본적인 우선순위 큐 문제이다. 이 문제도 골드 4 난이도 치고는 쉽다.

우선순위 큐에 남은 수가 2개 이하가 되기 전까지 제일 작은 두 값을 pop 해서 더하고,

그 합을 우선순위 큐에 추가하고 res에 더해주면 된다. 마지막에 res를 출력해주면 끝

import heapq
import sys
input = sys.stdin.readline

N = int(input())
q = []
for _ in range(N):
    n = int(input())
    heapq.heappush(q, n)
if N == 1:
    print(0)
else:
    res = 0
    while len(q) > 1:
        t = heapq.heappop(q)+heapq.heappop(q)
        res += t
        heapq.heappush(q, t)
    print(res)
728x90
반응형

+ Recent posts