ALGORITHM/PYTHON

백준 BAEKJOON 14471번 포인트 카드 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 14471번 포인트 카드 [PYTHON/파이썬]


<문제 출처>

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

 

14471번: 포인트 카드

예제 입출력 1에서, 포인트 카드 1의 꽝 도장 3개와 포인트 카드 3의 꽝 도장 1개를 당첨 도장으로 바꾸면, 4엔으로 5-1=4장의 카드가 경품과 교환 가능하게 되어, 이것이 최소 비용이다. 예제 입출

www.acmicpc.net

<풀이>

경품은 M-1 개 받을 수 있으니

for 문을 통해 N 이상인 포인트 카드들은 전체 카드에서 -1 하였고 (cnt)

N 보다 작은 포인트 카드들이 얼만큼 비용을 지불해야

꽝에서 당첨으로 바꿀 수 있는지 card_stamp에 추가했다.

그리고 card_stamp를 정렬하여 남은 경품 개수만큼 total_value에 값을 더해서 풀었다.

 

<코드>

N, M = map(int, input().split())
card_stamp = []
cnt = M-1
for _ in range(M) :
    A, B = map(int, input().split())
    if A < N :
        card_stamp.append(N - A)
    else :
        cnt -= 1

card_stamp.sort()
total_value = 0
if cnt > 0 :
    for i in range(cnt) :
        total_value += card_stamp[i]

print(total_value)
반응형