반응형
코드
import sys
import heapq
n,m = map(int,input().split())
c = list(map(int,sys.stdin.readline().split()))
w = list(map(int,sys.stdin.readline().split()))
hq = []
for i in c:
heapq.heappush(hq,-i)
for i in w:
mx = -heapq.heappop(hq)
if mx < i:
print(0)
exit()
heapq.heappush(hq,-(mx-i))
print(1)
설명
파이썬은 기본이 최소힙이기 때문에 최대힙으로 만들려면 값을 넣어줄 때 - 를 붙여서 넣어야 한다. 그럼 큰 숫자가 가장 작은 수로 변하여 pop을 했을 때 가장 먼저 나오게 된다.
가장 큰 숫자를 pop 해주고 아이가 원하는 선물의 개수와 비교하여 원하는 선물 개수보다 작으면 0을 출력하고 코드를 끝낸다. 더 크면 해당 값만큼 빼준 뒤 - 를 붙여서 다시 힙에 넣어준다.
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 1655번 가운데를 말해요 (0) | 2023.01.05 |
---|---|
[백준][Python] 10815번 숫자 카드 (0) | 2023.01.04 |
[백준][Python] 12605번 단어순서 뒤집기 (0) | 2022.11.14 |
[백준][Python] 19583번 싸이버개강총회 (0) | 2022.09.14 |
[백준][Python] 9375번 패션왕 신해빈 (0) | 2022.02.24 |
댓글