LV 2: 디펜스 게임

ewillwin·2023년 8월 17일
0

문제 링크

LV 2: 디펜스 게임


구현 방식

  • 최대 힙을 이용해서 만약 n이 0보다 작은 경우가 발생하면, 이전 라운드들 중 적의 수가 가장 큰 라운드에 대해서 무적권을 써주는 방식으로 풀어주었다

  • 이전 라운드에 무적권을 써줄 때는, 해당 라운드의 적의 수만큼 n을 증가시켜주고, k를 1 감소시켜주는 부분만 신경 써주면 된다 (어차피 무적권은 적의 수와 관계 없이 사용되기 때문)


코드

import heapq

def solution(n, k, enemy):
    
    heap = []
    
    for i in range(len(enemy)):
        n -= enemy[i]
        heapq.heappush(heap, -enemy[i])
        if n < 0:
            if k <= 0:
                i -= 1
                break
            else:
                n += (-1) * heapq.heappop(heap)
                k -= 1          
            
    return i+1   
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글