⭐️
import heapq
def solution(n, k, enemy):
answer = 0
tot, cnt, defense = 0, 0, k
heap = []
for en in enemy:
tot += en
heapq.heappush(heap, -en)
# 적 숫자보다 적을 경우
if n < tot:
# 무적권 사용
if defense:
if heap:
# 최대힙 이용해 최댓값 삭제 가능
el = -heapq.heappop(heap)
tot -= el
defense -= 1
# 무적권 사용 불가
else:
break
cnt += 1
# 최소, 최대 무적권 개수와 enemy 길이 고려
return min(max(cnt, k), len(enemy))
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges