Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.2 디펜스 게임 [Python, 파이썬] 본문
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/142085
- 🔑 우선순위 큐 (hqepq)
- 먼저 무적권 횟수만큼 라운드를 클리어하고 큐에 적 정보를 저장한다. (heappush)
- 무적권을 다 사용했으면 클리어 한 라운드 중 가장 적이 적었던 라운드를 무적권이 아닌 병사로 처리한다. (heappop)
- 병사로 처리했으므로 무적권을 다시 사용할 수 있음
- 위 방법으로 무적권을 효율적으로 사용해서 라운드를 최대한 클리어할 수 있다.
from heapq import heappush, heappop
def solution(n, k, enemy):
answer = 0
hq = []
for i in range(len(enemy)):
heappush(hq, enemy[i])
if len(hq) <= k: # 일단 무적권 모두 사용
answer += 1
continue
# 다 사용했으면 무적권을 사용한 라운드 중 가장 적이 적은 라운드를 병사로 처리
n -= heappop(hq)
if n < 0: break # 처리 못하면 종료
answer += 1 # 처리할 수 있으면 라운드 클리어
return answer
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 가장 큰 정사각형 찾기 [Python, 파이썬] (0) | 2024.07.18 |
---|---|
[프로그래머스] Lv.2 테이블 해시 함수 [Python, 파이썬] (0) | 2024.07.15 |
[프로그래머스] Lv.2 미로 탈출 [Python, 파이썬] (0) | 2024.05.23 |
[프로그래머스] Lv.3 섬 연결하기 [Python, 파이썬] (0) | 2024.04.19 |
[프로그래머스] Lv.2 무인도 여행 [Python, 파이썬] (0) | 2024.03.15 |
Comments