FeelingXD

[백준-31246] 모바일 광고 입찰 💸 본문

프로그래밍/문제풀이

[백준-31246] 모바일 광고 입찰 💸

FeelingXD 2024. 1. 18. 22:40

❓ Problem

🤔 How

  • N = 스크린에 대한 몰로코의 입찰가 와 , 현재 최고 입찰가 의 갯수가 주어진다.
  • K = 입찰받아야하는 최소 스크린 수
  • N 개의 줄에 몰로코의 입찰가 , 현재 최고 입찰가가 순으로 주어진다.
  1. diff_fee 를 기록한다. 해당 리스트는 입찰가 차이(현재 입찰 최고가-입찰가)를 모아서 보관 한다.
  2. diff_fee 를 정렬하면 입찰가 차이가 낮은순서로 정렬되고 diff_fee 의 K번째 원소(입찰가 차이의 K번째 원소)까지 구매할 수 있어야한다.
  3. 최소입찰 금액이 음수일 수 없으니 max(0, diff_fee[K-1]) 로 최소가격은 0으로 출력해 주어야 한다.

❗ Solve

  # 모바일 광고 입찰
  import sys
  input =sys.stdin.readline

  def solution():

      N,K=map(int,input().split())
      diff_fee=[]

      for _ in range(N):
          current_fee, screen_price =map(int,input().split())
          diff_fee.append(screen_price-current_fee)
      diff_fee.sort()
      print(max(0,diff_fee[K-1]))

      pass
  if __name__=="__main__": # 실행되는 부분
      solution()
      pass