๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Python] [Silver3] 15903๋ฒ_์นด๋ ํฉ์ฒด ๋์ด
Dbswnstjd
2023. 5. 29. 10:14
๋ฌธ์
https://www.acmicpc.net/problem/15903
15903๋ฒ: ์นด๋ ํฉ์ฒด ๋์ด
์ฒซ ๋ฒ์งธ ์ค์ ์นด๋์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ n(2 ≤ n ≤ 1,000)๊ณผ ์นด๋ ํฉ์ฒด๋ฅผ ๋ช ๋ฒ ํ๋์ง๋ฅผ ๋ํ๋ด๋ ์ m(0 ≤ m ≤ 15×n)์ด ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค์ ๋งจ ์ฒ์ ์นด๋์ ์ํ๋ฅผ ๋ํ๋ด๋ n๊ฐ์ ์์ฐ์ a1,
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 15903๋ฒ ๋ฌธ์ - ์นด๋ ํฉ์ฒด ๋์ด
import sys
import heapq
input = sys.stdin.readline
n, m = map(int, input().split())
cards = list(map(int, input().split()))
heapq.heapify(cards)
for i in range(m):
value = heapq.heappop(cards) + heapq.heappop(cards)
for _ in range(2):
heapq.heappush(cards, value)
answer = 0
while cards:
answer += heapq.heappop(cards)
print(answer)
Heap ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด ์ฐ์ ์์ ํ๋ฅผ ๋ง๋ ๋ค.
ํ์ด์ฌ์ Heap์ ์ต์ํ์ด๋ฏ๋ก ๋ฐ๋ก ๊ตฌํ์ ํด์ค ํ์๋ ์๋ค. [์ต๋ ํ์ ์ฌ์ฉํ๋ ค๋ฉด -1 ์ ์ฌ์ฉํด ์ ๋ ฌ]
ํ์์ pop์ 2๋ฒ ํ๊ณ ๋ํ ๊ฐ๋ค์ ๋ค์ ํ์ 2๋ฒ ๋ฃ์ด์ค๋ค.