๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€

[๋ฐฑ์ค€] 14940 ์‰ฌ์šด ์ตœ๋‹จ๊ฑฐ๋ฆฌ(ํŒŒ์ด์ฌ/python)

by chjcoder 2023. 8. 21.

๐ŸŽˆ๋ฌธ์ œ

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

 

๐ŸŽ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์ ‘๊ทผ

์šฐ์„ ์ˆœ์œ„ ํ

1. ํŒŒ์ด์ฌ ๋‚ด์žฅํ•จ์ˆ˜์ธ heapq๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

 

๐Ÿ’ป์ฝ”๋“œ

# 2109 ์ˆœํšŒ๊ฐ•์—ฐ
import heapq

# ์ž…๋ ฅ๋ฐ›๊ธฐ
n = int(input())
univ = [list(map(int,input().split())) for _ in range(n)]
univ = sorted(univ, key=lambda x:x[1])  # ๋ฐ๋“œ๋ผ์ธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ

lecture = []
for p,d in univ:
    '''
    univ๊ฐ€ day๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ
    ๋ฐ๋“œ๋ผ์ธ์ด ์งง์€ ์ˆœ์„œ๋กœ ๋Œ€ํ•™ ๊ฐ•์—ฐ์˜ ํŽ˜์ด๊ฐ€ ํž™์— ์ €์žฅ๋œ๋‹ค.
    ์ด๋•Œ ์ €์žฅ๋  ๋•Œ, ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ํ™œ์šฉํ•˜๋ฏ€๋กœ ํŽ˜์ด๊ฐ€ ๋‚ฎ์€ ์ˆœ์„œ๋Œ€๋กœ
    ์ €์žฅ๋œ๋‹ค.
    '''
    heapq.heappush(lecture,p)
    '''
    ๊ฐ•์—ฐ์€ ํ•˜๋ฃจ์— ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ•์—ฐ์˜ ์ˆ˜๊ฐ€ ๋ฐ๋“œ๋ผ์ธ๋ณด๋‹ค ํฌ๋ฉด
    ๊ฐ•์—ฐ์„ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ pop์„ ํ•˜๋ฉด ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ํŽ˜์ด๊ฐ€
    ๋‚ฎ์€ ์ˆœ์„œ๋Œ€๋กœ ๋ฑ‰์–ด๋‚ธ๋‹ค.
    ๋”ฐ๋ผ์„œ ํž™์— ์ผ๋‹จ ํŽ˜์ด๋ฅผ ์ €์žฅํ•œ ํ›„, ๋ฐ๋“œ๋ผ์ธ๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ
    ๊ฐ•์—ฐ์˜ ์ˆ˜๊ฐ€ ๋” ๋งŽ์œผ๋ฉด ๊ฐ€์žฅ ๋‚ฎ์€ ํŽ˜์ด๋ฅผ ๋ฑ‰์–ด๋‚ด๋Š” ์‹์œผ๋กœ ํ•ด์„œ
    for ๋ฌธ์„ ๋ชจ๋‘ ๋Œ๊ณ  ๋‚˜๋ฉด ๋ฐ๋“œ๋ผ์ธ ๋Œ€๋น„ ํŽ˜์ด๊ฐ€ ์Žˆ ๊ฐ•์—ฐ๋งŒ ๋‚จ๊ฒŒ ๋œ๋‹ค.
    '''
    if len(lecture) > d:
        heapq.heappop(lecture)
print(sum(lecture))

๐ŸŽ„์ฝ”๋“œ ์„ค๋ช…

์ฃผ์„์œผ๋กœ ์„ค๋ช…์€ ๋Œ€์ฒดํ•œ๋‹ค.