코딩 테스트/백준

백준 알고리즘 15903. 카드 합체 놀이

스마트코더91 2024. 3. 12. 20:39

https://www.acmicpc.net/problem/15903

 

15903번: 카드 합체 놀이

첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1,

www.acmicpc.net

 

전체 코드

import heapq

n, m = map(int, input().split())
heap = list(map(int, input().split()))
# for n in nums:
#     heapq.heappush(heap, n)
heapq.heapify(heap)

for _ in range(m):
    n1 = heapq.heappop(heap)
    n2 = heapq.heappop(heap)
    s = n1 + n2
    heapq.heappush(heap, s)
    heapq.heappush(heap, s)

print(sum(heap))