import sys
import heapq
n,k = map(int,sys.stdin.readline().split())
x=[list(map(int,sys.stdin.readline().split())) for i in range(n)]
y=[int(sys.stdin.readline()) for i in range(k)]
x.sort(key=lambda x: x[0])
y.sort()
i=0
j=0
heap=[]
ans=0
while i < k:
while j < n:
if y[i]>=x[j][0]:
heapq.heappush(heap,-x[j][1])
j+=1
else:
break
i+=1
if heap: // 이 부분 추가
ans+=-heapq.heappop(heap)
print(ans)
heap을 쓰지 않고 그냥 리스트로 구현하니 런타임 에러가 나서 heap을 넣고 구현하였다. 파이썬에서 heap은 최솟값으로 정렬되기 때문에 값에 -를 붙여서 answer를 구할 때 다시 -를 붙여줬다. 위 코드에서 heap이 비었을 때를 추가해주어야 테스트 케이스가 통과된다.
'Baekjoon' 카테고리의 다른 글
[BOJ / python] #1700 멀티탭 스케줄링 그리디 (0) | 2021.03.27 |
---|---|
[BOJ / python] #1541 수리공 항승 그리디 (0) | 2021.03.27 |
[BOJ / python] #1339 단어 수학 그리디 (0) | 2021.03.27 |
[BOJ / python] #2217 로프 그리디 (0) | 2021.03.23 |
[BOJ / python] #1541 잃어버린 괄호 그리디 (0) | 2021.03.23 |
댓글