-
디펜스 게임코딩 테스트/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)
반응형