1일 1솔

[백준] 14471번: 포인트 카드 (Python, 파이썬)

junmukbap98 2023. 9. 11. 16:01

문제 링크: https://www.acmicpc.net/problem/14471

 

14471번: 포인트 카드

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

www.acmicpc.net

 

Key point

포인트 카드 리스트를 성공 도장 (첫 번째 원소)를 기준으로 큰 순서대로 sorting

-> sorted(stamp, key=lambda x: x[0], reverse=True)

 

n, m = map(int, input().split())
stamp = []
count = 0
res = 0
for _ in range(m):
    stamp.append(list(map(int, input().split())))

stamp = sorted(stamp, key=lambda x: x[0], reverse=True)
for i in stamp:
    if i[0] >= n:
        count += 1
    elif i[0] < n:
        res += n - i[0]
        count += 1
    if count == m-1:
        break

print(res)