728x90
https://www.acmicpc.net/problem/15903
import sys, heapq
n, m = map(int, sys.stdin.readline().split())
heap = list(map(int, sys.stdin.readline().split())) #1
heapq.heapify(heap) #2
for _ in range(m):
n1 = heapq.heappop(heap) #3
n2 = heapq.heappop(heap)
tmp = n1 + n2 #4
heapq.heappush(heap, tmp) #5
heapq.heappush(heap, tmp)
print(sum(heap)) #36
#1 : 입력받을 숫자를 리스트로 받는다
#2 : 그리고 일반 리스트를 힙 자료구조로 바꾼다
#3 : 최소 힙을 보장하므로 원소 2개를 꺼낸다
#4 : 꺼낸 원소를 더한 값을 임시로 생성하고
#5 : 두번 넣어준다
#6 : 과정이 끝나고 힙 자료구조에 있는 원소를 모두 더한다
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 14235 파이썬(python) : 크리스마스 선물 (0) | 2022.07.26 |
---|---|
[백준] 19638 파이썬(python) : 센티와 마법의 뿅망치 - 최대 힙 활용문제 (0) | 2022.07.25 |
[백준] 2075 파이썬(python) : N번째 큰 수 - heapq (0) | 2022.07.25 |
[백준] 1417 파이썬(python) : 국회의원 선거 (0) | 2022.07.25 |
[백준] 15815 파이썬(python) : 천재 수학자 성필 - 후위표기식 (0) | 2022.07.25 |