[Boj문제풀이]

[Boj/백준] 15903 Python

ki7348 2021. 9. 14. 17:27

문제출처: https://www.acmicpc.net/problem/15903

 

15903번: 카드 합체 놀이

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

www.acmicpc.net

 

 

1. 문제 접근 방식

힙에 삽입하고 m번 동안 heappop 2회 한 후에 둘을 더한 값을 heappush 2회 해준다.

 

 

2. 내가 푼 코드

import sys
import heapq

n, m = map(int,sys.stdin.readline().split())

heap = []

arr = list(map(int,sys.stdin.readline().split()))

for i in arr:
    heapq.heappush(heap, i)

for i in range(m):
    a = heapq.heappop(heap)
    b = heapq.heappop(heap)
    heapq.heappush(heap,a+b)
    heapq.heappush(heap,a+b)

print(sum(heap))

 

 

3. 결과 및 느낀점

힙 라이브러리 진짜 편리하다...

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 19598 Python  (0) 2021.09.15
[Boj/백준] 19638 Python  (0) 2021.09.14
[Boj/백준] 1927 11279 11286 Python  (0) 2021.09.13
[Boj/백준] 5464 Python  (0) 2021.09.11
[Boj/백준] 18115 Python  (0) 2021.09.10