현재 연료로 갈 수 있는 거리에 포함되는 아이들을 heap에 넣는다.
그리고 연료가 가장 큰 아이를 택해서 p에 더해주고 cnt를 증가시킨다 -> 방문
import heapq
n = int(input())
oil = []
for _ in range(n):
oil.append(tuple(map(int, input().split())))
l, p = map(int, input().split())
oil.sort()
hq,i,cnt = [],0,0
while p < l:
while i < n and oil[i][0] <= p:
heapq.heappush(hq, -oil[i][1])
i += 1
if not hq:
break
p -= heapq.heappop(hq)
cnt += 1
print(-1 if p < l else cnt)
'알고리즘 > 백준' 카테고리의 다른 글
1189. 컴백홈 (0) | 2022.03.29 |
---|---|
2468. 안전 영역 (0) | 2022.03.25 |
14500. 테트로미노 (0) | 2022.03.23 |
10159. 저울 (0) | 2022.03.21 |
2638. 치즈 (0) | 2022.03.20 |