๋ฌธ์
ํ์ด
1. ๋ฐ๋๋ผ์ธ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
๋ฌธ์ ๋ฐฐ์ด
๋ฐ๋๋ผ์ธ | 1 | 1 | 2 | 2 | 3 | 3 | 6 |
์ปต๋ผ๋ฉด | 7 | 6 | 4 | 5 | 1 | 2 | 1 |
2. ์ฐ์ ์์ ํ์ ์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ๋ฃ๋๋ค.
์ฐ์ ์์ ํ
๋ ์ง | 1์ผ | 2์ผ | 3์ผ | 4์ผ | 5์ผ | ||
๋ฐ๋๋ผ์ธ | 1 | ||||||
์ปต๋ผ๋ฉด | 7 |
1์ผ ์ฐจ, 1๋ฌธ์
์ฐ์ ์์ ํ์ ๋ฌธ์ ๋ฅผ ์ฝ์ = ํด๋น ๋ฌธ์ ๋ฅผ ํ
๋ง์ฝ ์ฐ์ ์์ ํ์ 2๊ฐ์ ๋ฌธ์ ๋ฅผ ์ฝ์ ํ๋ค๋ฉด, 2์ผ์ด ์ง๋ ์ ์ด๋ค. (ํ ๋ฌธ์ ๋น ํ๋ฃจ๊ฐ ๊ฑธ๋ฆฌ๋ฏ๋ก)
3. ์ฐ์ ์์ ํ์ ๋ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ์ฝ์
์ฐ์ ์์ ํ
๋ ์ง | 1์ผ | 2์ผ | 3์ผ | 4์ผ | 5์ผ | ||
๋ฐ๋๋ผ์ธ | 1 | 1 | |||||
์ปต๋ผ๋ฉด | 6 | 7 |
2์ผ ์ฐจ, 2๋ฌธ์
2์ผ์ฐจ์ผ ๋ ๋ฐ๋๋ผ์ธ์ด 1์ผ๊น์ง์ธ ๋ฌธ์ ๋ ํ ์ ์๋ค!
๋ํ ๋ํธ๋ ๋ง์ง๋ง์ ์ฝ์ ๋ ๋ฐ๋๋ผ์ธ๋ณด๋ค ๋ง์ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ง์ง๋ง์ ์ฝ์ ๋ ๋ฌธ์ ์ ๋ฐ๋๋ผ์ธ < ํ์ฌ ๋ ์ง์ธ ๊ฒฝ์ฐ
ํ์ฌ ๋ ์ง๋ฅผ ๋ง์ง๋ง์ ์ฝ์ ๋ ๋ฌธ์ ์ ๋ฐ๋๋ผ์ธ์ ๋ง์ถฐ์ฃผ๋ฉด ๋๋ค.
์ฆ, ์ปต๋ผ๋ฉด์ด ๊ฐ์ฅ ์์ ๋ฌธ์ ๋ฅผ ํ์ง ์์ ์ ์น๋ฉด ๋๋ค. (์ฐ์ ์์ ํ pop)
(๋ฌธ์ ๋ ์ฐ์ ์์ ํ์ ๋ฐ๋๋ผ์ธ์ ์ค๋ฆ์ฐจ ์์ผ๋ก ์ฝ์ ๋๋ฏ๋ก ์ฐ์ ์์ ํ์๋ ํญ์ ๋ง์ง๋ง์ ์ฝ์ ๋ ๋ฌธ์ ์ ๋ฐ๋๋ผ์ธ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์ ๋ค๋ง ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ํ ๋ฌธ์ ์ด์ ํ์ง ์์ ์ ์น ์ ์๋ค.)
์ฐ์ ์์ ํ (๊ฐ์ฅ ์์ ์ปต๋ผ๋ฉด pop)
๋ ์ง | 1์ผ | 2์ผ | 3์ผ | 4์ผ | 5์ผ | ||
๋ฐ๋๋ผ์ธ | 1 | ||||||
์ปต๋ผ๋ฉด | 7 |
1์ผ ์ฐจ, 1๋ฌธ์
์ปต๋ผ๋ฉด์ด 6์ธ ๋ฌธ์ ๋ฅผ ํ์ง์์ ์ ์ณ์
ํ์ฌ ๋ ์ง๋ฅผ 2์ผ -> 1์ผ๋ก ๋ง์ถฐ์ค๋ค.
์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๋๋ค.
์ดํด๊ฐ ์ด๋ ต๋ค๋ฉด
๋ฐ๋๋ผ์ธ | 1 | 2 | 3 | 3 |
๋ฌธ์ | 1 | 5 | 50 | 100 |
ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ง์ ํด๋ณด๊ธธ ๋ฐ๋๋ค.
์ฝ๋
import sys, heapq
input = sys.stdin.readline
n = int(input())
problems = [list(map(int, input().split())) for _ in range(n)]
problems.sort()
queue = []
for deadline, cupRamen in problems:
heapq.heappush(queue, cupRamen)
if deadline < len(queue):
heapq.heappop(queue)
print(sum(queue))
๋ง๋ฌด๋ฆฌ
๋๋ฌด ์ด๋ ต๋ค...