728x90
내가 짠 코드 (안돌아간 코드)
import heapq
def solution(scoville, K):
cnt = 0
heapq.heapify(scoville)
if heapq.nsmallest(1, scoville)[0] >= K:
return cnt
while len(scoville) >= 2:
first = heapq.heappop(scoville)
second = heapq.heappop(scoville)
new = first + (second * 2)
heapq.heappush(scoville, new)
cnt += 1
smallest = heapq.nsmallest(1, scoville)[0]
if smallest >= K:
return cnt
# 스코빌 지수를 못 만드는 경우 - 리스트가 2보다 작을때
return -1
내가 짠 코드는 TC는 모두 돌아갔으나, 효율이 모두 통과하지 못했다. . 확실히 코드가 깔끔하지 않았다.
돌아간 코드
import heapq
def solution(scoville, K):
cnt = 0
heapq.heapify(scoville)
while scoville[0] < K:
if len(scoville) >= 2:
cnt += 1
ans = heapq.heappop(scoville)
ans += heapq.heappop(scoville)*2
heapq.heappush(scoville, ans)
else:
return -1
return cnt
수정 후 정상적으로 작동했다.
댓글