https://www.acmicpc.net/problem/13975
1. 파일은 어차피 n-1번 합쳐야 한다.
2. 그러므로 가장 작은 파일 2개씩 파일이 1개가 남을 때까지 더해주면 된다.
from heapq import heappush, heappop, heapify
T = int(input())
while T:
T -= 1
n = int(input())
f = list(map(int, input().split()))
ans = 0
heapify(f)
while len(f) > 1:
x, y = heappop(f), heappop(f)
ans += x + y
heappush(f, x+y)
print(ans)
'알고리즘 > BOJ' 카테고리의 다른 글
[Python] 백준 1398: 동전문제 (0) | 2021.09.27 |
---|---|
[Python] 백준 2590: 색종이 (0) | 2021.09.26 |
[Python] 백준 2513: 통학버스 (0) | 2021.09.25 |
[Python] 백준 1082: 방 번호 (0) | 2021.09.25 |
[Python] 백준 1083: 소트 (0) | 2021.09.25 |
댓글