[문제 풀이]
- enemy 배열을 앞에서 탐색하며 무적권을 먼저 사용하는 방법을 활용했습니다.
- 하지만 사용했다해서 끝이 아니라 값을 비교하면서 무적권 안에 현재 마주한 적 수보다 작은 라운드에 무적권이 사용되었다면 현재 라운드에 무적권을 사용한 것으로 갱신해주었습니다.
[풀이 코드]
import heapq
def solution(n, k, enemy):
answer = 0
invinc = [0] * k # 무적권
for i in range(len(enemy)):
# invinc[0] 랑 비교하면서 invinc 대체
if enemy[i] > invinc[0]:
n -= heapq.heapreplace(invinc, enemy[i])
else:
n -= enemy[i]
if n < 0:
return i
return len(enemy) # 만약 배열이 다 돌고 나서도 여기로 나온다면 n > 0 이라는 뜻으로 무조건 clear
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/python] 혼자 놀기의 달인 (0) | 2023.03.17 |
---|---|
[프로그래머스/python] 택배 상자 (0) | 2023.03.17 |
[프로그래머스/python] 덧칠하기 (0) | 2023.03.14 |
[프로그래머스/python] 마법의 엘리베이터 (1) | 2023.03.13 |
[프로그래머스/python] 우박수열 정적분 (0) | 2023.03.09 |