https://school.programmers.co.kr/learn/courses/30/lessons/142085
import heapq
def solution(n, k, enemy):
answer = 0
acc_enemy = 0
h = []
for e in enemy:
heapq.heappush(h, -e)
acc_enemy += e
if acc_enemy > n:
if k >= 1:
acc_enemy += heapq.heappop(h)
k -= 1
else:
break
answer += 1
return answer
1 ≤ enemy의 길이 ≤ 1,000,000
조건을 보고 O(logn)
시간복잡도가 소요되는 이진 탐색으로 접근했는데 어려웠다. 힙을 생각해보니 문제가 너무 쉽게 풀렸다.