# 최소비용 계산하기. 최소힙.
from heapq import *
import sys
input = sys.stdin.readline
t = int(input()) # 테스트 케이스 수
for _ in range(t):
k = int(input()) # 장 수
nums = list(map(int, input().split())) # 파일 크기
heapify(nums) # 힙으로 변환
total = 0 # 총합
while len(nums) > 1: # 더이상 더할 수가 없을때까지 더함
x = heappop(nums) # 가장 작은 수
y = heappop(nums) # 그 다음 작은 수
total += x + y # 총합에 더해주고 힙에 다시 추가
heappush(nums, x + y)
print(total)
https://www.acmicpc.net/problem/13975
13975번: 파일 합치기 3
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데,
www.acmicpc.net
'study > Algorithm' 카테고리의 다른 글
[백준] 파이썬 1939 : 중량제한 (0) | 2024.04.09 |
---|---|
[백준] 파이썬 1863번: 스카이라인 쉬운거 (0) | 2024.04.09 |
[백준] 파이썬 1697번: 숨바꼭질 (0) | 2024.04.09 |
[백준] 파이썬 7562번: 나이트의 이동 (0) | 2024.04.09 |
[백준] 파이썬 10026번: 적록색약 (0) | 2024.04.09 |