반응형
코드
import heapq
import sys
n = int(input())
h = []
for _ in range(n):
num = int(sys.stdin.readline())
heapq.heappush(h,num)
if n == 1:
print(0)
exit()
answer = 0
while len(h)>1:
a = heapq.heappop(h)
b = heapq.heappop(h)
sum = a+b
answer+=sum
heapq.heappush(h,sum)
print(answer)
설명
전에 올린 파일합치기3 문제와 동일하다. 힙을 이용해서 작은 수 두 개를 뽑아서 더해준 뒤 다시 힙에 넣어주면 된다.
2022.05.03 - [알고리즘/그리디] - [백준][Python] 13975번 파일 합치기 3
대신 이 문제에서는 주어진 묶음이 하나이면 비교할 묶음이 없기 때문에 0을 출력해줘야 한다.
반응형
'알고리즘 > 그리디' 카테고리의 다른 글
[백준][Python] 11256번 사탕 (1) | 2022.09.20 |
---|---|
[백준][Python] 1439번 뒤집기 (0) | 2022.05.25 |
[백준][Python] 13975번 파일 합치기 3 (0) | 2022.05.03 |
[백준][Python] 2812번 크게 만들기 (0) | 2022.05.02 |
[백준][Python] 2141번 우체국 (0) | 2022.04.29 |
댓글