๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 1781๋ฒ
ํ์ด ๊ณผ์
๋ง๊ฐ์ผ์ ๊ณ ๋ คํ์ฌ ๊ฐ์ฅ ๋ง์ ์ปต๋ผ๋ฉด์ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๊ทธ๋ฆฌ๋
๋ฌธ์ ์
๋๋ค.
๋ฐ๋๋ผ์ธ์ ๋ง์ง๋ง ๋ ๋ถํฐ ์ํ๋ฅผ ํ๋ฉด์ ํด๋นํ๋ ๋ ์ด์์ ๋ ์ง์ ๋ํด์ ๊ฐ์ฅ ๋ง์ ์ปต๋ผ๋ฉด์ ์ป์ ์ ์๋ ๊ฒ์ ์ ํํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฅผ ์ํด ์ฐ์ ์์ ํ
๋ฅผ ๋ ๊ฐ ์ฌ์ฉํด์ ํ๋๋ ๋ฐ๋๋ผ์ธ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก, ๋ค๋ฅธ ํ๋๋ ์ปต๋ผ๋ฉด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ฌ์ฉํฉ๋๋ค.
์ฝ๋
import sys
import heapq
N = int(input())
questions = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
def init_queue():
pq = []
for deadline, cups in questions:
heapq.heappush(pq, [-deadline, -cups])
return pq
def solution():
pq = init_queue()
day = -pq[0][0]
answer = 0
candidates = []
while day > 0:
while pq and -pq[0][0] >= day:
target = heapq.heappop(pq)
heapq.heappush(candidates, target[1])
if candidates:
select = -heapq.heappop(candidates)
answer += select
day -= 1
return answer
print(solution())
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 1916 - ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2021.06.07 |
---|---|
BOJ 15684 - ์ฌ๋ค๋ฆฌ ์กฐ์ (0) | 2021.06.07 |
BOJ 6118 - ์จ๋ฐ๊ผญ์ง (0) | 2021.06.07 |
BOJ 2331 - ๋ฐ๋ณต์์ด (0) | 2021.06.07 |
BOJ 4889 - ์์ ์ ์ธ ๋ฌธ์์ด (0) | 2021.06.07 |
๐ฌ ๋๊ธ