코딩 테스트/Level 2
디펜스 게임
컴닥
2022. 12. 8. 19:51
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/142085
힙큐를 쓰면 쉽게 풀 수 있다.
push와 pop을 같이 해야할 경우 pushpop을 쓰는 것이 더 빠르다.
파이썬 내장 함수에 round가 있기 때문에 변수명으로 round는 사용하지 않는 것이 좋다.
파이썬의 힙큐는 최소힙이라 최대힙을 사용하기 위해 '-'를 붙여주었다.
def solution(n, k, enemy):
from heapq import heappushpop, heappush
heap = []
total = round_ = 0
for each in enemy:
total += each
if total <= n:
heappush(heap, -each)
round_ += 1
elif k > 0:
k -= 1
total += heappushpop(heap, -each)
round_ += 1
return round_
테스트 1 〉 통과 (1.26ms, 10.5MB)
테스트 2 〉 통과 (12.10ms, 11.5MB)
테스트 3 〉 통과 (214.77ms, 52.8MB)
테스트 4 〉 통과 (70.99ms, 18.6MB)
테스트 5 〉 통과 (3.84ms, 10.3MB)
테스트 6 〉 통과 (200.71ms, 53.1MB)
테스트 7 〉 통과 (174.89ms, 56.8MB)
테스트 8 〉 통과 (135.24ms, 54.4MB)
테스트 9 〉 통과 (155.29ms, 54.9MB)
테스트 10 〉 통과 (279.97ms, 85.6MB)
테스트 11 〉 통과 (70.50ms, 18.5MB)
테스트 12 〉 통과 (72.63ms, 18.5MB)
테스트 13 〉 통과 (0.01ms, 10.2MB)
테스트 14 〉 통과 (0.01ms, 10.1MB)
테스트 15 〉 통과 (0.01ms, 10.2MB)
테스트 16 〉 통과 (0.01ms, 10MB)
테스트 17 〉 통과 (0.00ms, 10.1MB)
테스트 18 〉 통과 (0.00ms, 9.98MB)
테스트 19 〉 통과 (0.00ms, 10.1MB)
테스트 20 〉 통과 (0.01ms, 10.2MB)
테스트 21 〉 통과 (0.01ms, 10.2MB)
테스트 22 〉 통과 (0.01ms, 10.3MB)
테스트 23 〉 통과 (0.03ms, 10.2MB)
테스트 24 〉 통과 (0.03ms, 9.97MB)
테스트 25 〉 통과 (0.03ms, 10.2MB)
테스트 26 〉 통과 (0.07ms, 9.96MB)
테스트 27 〉 통과 (0.05ms, 10.2MB)
테스트 28 〉 통과 (0.03ms, 10.1MB)
테스트 29 〉 통과 (0.08ms, 10.3MB)
테스트 30 〉 통과 (0.04ms, 10.2MB)
테스트 31 〉 통과 (0.07ms, 10.2MB)
테스트 32 〉 통과 (0.07ms, 10.1MB)
급하게 작성하느라 break를 빼먹음...
def solution(n, k, enemy):
from heapq import heappushpop, heappush
heap = []
total = round_ = 0
for each in enemy:
total += each
if total <= n:
heappush(heap, -each)
round_ += 1
elif k > 0: # total > n
k -= 1
total += heappushpop(heap, -each)
round_ += 1
else:
break
return round_
테스트 1 〉 통과 (0.40ms, 10.6MB)
테스트 2 〉 통과 (2.01ms, 11.6MB)
테스트 3 〉 통과 (117.94ms, 52.9MB)
테스트 4 〉 통과 (3.75ms, 18.5MB)
테스트 5 〉 통과 (2.47ms, 10.4MB)
테스트 6 〉 통과 (127.65ms, 53.1MB)
테스트 7 〉 통과 (61.60ms, 57MB)
테스트 8 〉 통과 (63.90ms, 54.5MB)
테스트 9 〉 통과 (47.96ms, 55MB)
테스트 10 〉 통과 (191.11ms, 85.7MB)
테스트 11 〉 통과 (0.03ms, 18.6MB)
테스트 12 〉 통과 (0.06ms, 18.6MB)
테스트 13 〉 통과 (0.01ms, 10.2MB)
테스트 14 〉 통과 (0.01ms, 10.2MB)
테스트 15 〉 통과 (0.01ms, 10.2MB)
테스트 16 〉 통과 (0.01ms, 10.3MB)
테스트 17 〉 통과 (0.01ms, 10.3MB)
테스트 18 〉 통과 (0.00ms, 10.2MB)
테스트 19 〉 통과 (0.01ms, 10.3MB)
테스트 20 〉 통과 (0.01ms, 10.3MB)
테스트 21 〉 통과 (0.01ms, 10.2MB)
테스트 22 〉 통과 (0.01ms, 10.3MB)
테스트 23 〉 통과 (0.02ms, 10.3MB)
테스트 24 〉 통과 (0.02ms, 10.3MB)
테스트 25 〉 통과 (0.04ms, 10.3MB)
테스트 26 〉 통과 (0.04ms, 10.2MB)
테스트 27 〉 통과 (0.07ms, 10.2MB)
테스트 28 〉 통과 (0.02ms, 10.2MB)
테스트 29 〉 통과 (0.05ms, 10.1MB)
테스트 30 〉 통과 (0.03ms, 10.2MB)
테스트 31 〉 통과 (0.04ms, 10.2MB)
테스트 32 〉 통과 (0.03ms, 10.4MB)
반응형