https://www.acmicpc.net/problem/13975
풀이
파일을 heap에 넣고 가장 작은 두 개를 빼고 더해서 다시 heap에 넣어줍니다.
그 과정에서 더한 값은 cnt에 더해주고 마지막에 cnt를 출력해주면 됩니다.
import heapq
t = int(input())
for _ in range(t):
n = int(input())
nums = list(map(int, input().split()))
heap = []
for num in nums:
heapq.heappush(heap, num)
cnt = 0
while len(heap) > 1:
a = heapq.heappop(heap)
b = heapq.heappop(heap)
cnt += (a+b)
heapq.heappush(heap, a+b)
print(cnt)
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 1932번 : 정수 삼각형 (0) | 2022.07.05 |
---|---|
파이썬) 백준 알고리즘 | 2156번 : 포도주 시식 (0) | 2022.07.05 |
파이썬) 백준 알고리즘 | 15903번 : 카드 합체 놀이 (0) | 2022.07.01 |
파이썬) 백준 알고리즘 | 20004번 : 베스킨라빈스 31 (0) | 2022.07.01 |
파이썬) 백준 알고리즘 | 9661번 : 돌 게임 7 (0) | 2022.06.30 |
댓글