Programming/백준

[브론즈 2] 백준 14471 - 포인트 카드 (파이썬)

pental 2025. 5. 4. 12:32

https://www.acmicpc.net/problem/14471

풀이

  • N개의 포인트를 사용하여 M개의 카드를 구매하고 싶다.
  • 각 카드에는 (a, b)가 주어지며,
    • a는 현재 모인 포인트 수
    • b는 해당 카드의 포인트 카드 개수
  • 카드를 구매하기 위해서는 포인트가 a 이상이어야 한다.
  • 카드를 구매하면 b만큼 포인트가 오른다.
  • 목표는 총 N개의 포인트를 모으는 최소한의 비용을 계산하는 것.

코드

# 백준 14471 - 포인트 카드
# 분류 : 그리디

N, M = map(int, input().split())
C = [list(map(int, input().split())) for _ in range(M)]

C.sort(reverse=True)
cost = 0
for i in range(M - 1) :
    if C[i][0] < N :
        cost += N - C[i][0]

print(cost)