https://www.acmicpc.net/problem/13975
13975번: 파일 합치기 3
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데,
www.acmicpc.net
풀이
파일을 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 |
댓글