🦖 Programming/Python
[Python] 백준 알고리즘 15903번 : 카드 합체 놀이
박낑깡이
2022. 10. 9. 00:35
https://www.acmicpc.net/problem/15903
👩💻문제 이해
합이 최소가 되도록 해야하기 떄문에 heappop 두 번으로 가장 작은 숫자를 가진 card 두장을 뽑은 후,
두 장을 더한 값을 다시 heappush로 넣어주면 된다.
👩💻heappop, heappush, heapify를 사용한 코드 : 성공🌈
# 15903번 : 카드 합체 놀이
from heapq import heappop, heappush, heapify
n, m = map(int, input().split())
cards = [int(i) for i in input().split()]
# cards 리스트를 heap으로 변환
heapify(cards)
for i in range(m):
card1 = heappop(cards)
card2 = heappop(cards)
heappush(cards, card1+card2)
heappush(cards, card2+card1)
print(sum(cards))
✨Point✨
1. list안에 정수값 한줄로 받기
[int(i) for i in input().split()]
2. list -> heap 전환
heapify(list)