-
[BOJ 15903, Python 3] 카드 합체 놀이알고리즘/BOJ 2021. 8. 6. 14:13반응형
https://www.acmicpc.net/problem/15903
풀이
두 카드를 선택하고 점수를 합친 값을 선택한 두 카드의 값으로 재설정한다고 합니다.
이렇게 M번 반복하고, 카드들의 합이 최소화가 되는 것을 원한다고 합니다.
최소화를 하려면 가장 작은 2개를 선택하면 된다는 것을 알 수 있습니다.
코드는 heapq를 사용하였는데, for문 돌릴때마다 sort를 사용해도 상관 없습니다.
코드
12345678910111213from heapq import *n, m = map(int, input().split())arr = [*map(int, input().split())]q = []for i in range(n):heappush(q, arr[i])for i in range(m):x = heappop(q)y = heappop(q)heappush(q, x+y)heappush(q, x+y)print(sum(q))cs 반응형'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 1946, Python 3] 신입 사원 (0) 2021.08.06 [BOJ 1041, Python 3] 주사위 (0) 2021.08.06 [BOJ 11047, Python 3] 동전 0 (0) 2021.08.05 [BOJ 2138] 전구와 스위치 (0) 2021.08.05 [BOJ 1931, Python 3] 회의실 배정 (0) 2021.08.05