[백준] 13975번 파일 합치기 3

거북이·2023년 2월 24일
0

백준[골드4]

목록 보기
10/59
post-thumbnail

💡문제접근

  • 힙(heap) 자료 구조를 이용해서 가장 작은 값을 두 개 반환해서 더하여 비용을 구해준 다음 다시 힙에 넣어 과정을 반복한다.

💡코드(메모리 : 152768KB, 시간 : 4996ms)

import heapq
import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    N = int(input())
    heap = []
    li = []
    Sum = 0
    li = list(map(int, input().strip().split()))
    for i in li:
        heapq.heappush(heap, i)

    while True:
        if len(heap) <= 1:
            break
        a = heapq.heappop(heap)
        b = heapq.heappop(heap)
        heapq.heappush(heap, a + b)
        Sum += a + b
    print(Sum)

💡소요시간 : 10m

0개의 댓글