alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 15903 카드 합체 놀이_파이썬 본문
15903 카드 합체 놀이 www.acmicpc.net/problem/15903
문제 풀기 전 공부할 것 : 자료 구조, 그리디 알고리즘, 우선순위 큐
풀이
<내용>
- 우선순위 큐를 이용해서 해결한다.
- 우선순위 큐를 이용해서 카드들을 넣는다.
- 우선순위 큐를 이용해서 가장 작은 2개 카드를 꺼내서 더하고 2번 넣어준다.
- 위의 과정을 m번 반복하고 총합을 출력한다.
<코드>
import heapq
n, m = map(int, input().split())
cards = list(map(int, input().split()))
heap = []
for card in cards:
heapq.heappush(heap, card)
for _ in range(m):
x = heapq.heappop(heap)
y = heapq.heappop(heap)
heapq.heappush(heap, x+y)
heapq.heappush(heap, x+y)
print(sum(heap))
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 1992 쿼드트리_파이썬 (0) | 2020.11.24 |
---|---|
[알고리즘][Python] 백준(BOJ) 2630 색종이 만들기_파이썬 (0) | 2020.11.23 |
[알고리즘][Python] 백준(BOJ) 1269 대칭 차집합_파이썬 (0) | 2020.11.21 |
[알고리즘][Python] 백준(BOJ) 2161 카드1_파이썬 (0) | 2020.11.20 |
[알고리즘][Python] 백준(BOJ) 1439 뒤집기_파이썬 (0) | 2020.11.19 |
Comments