프로그래머스 2단계 "더 맵게"

sanha_OvO·2021년 6월 24일
0

Algorithm

목록 보기
63/84

문제

프로그래머스 2단계 더 맵게


풀이

가장 작은 수와 그 다음 작은 수를 스코빌 계산하여 이를 모든 수가 k값을 넘을 때까지 반복하여야 한다.

다만 처음 풀었을 땐 리스트에서 min값 두개 빼와서 사용하였더니 효율성 검사를 통과하지 못하였다.
힙을 사용하여 문제를 풀었더니 해결!


Python 코드

import heapq

def solution(scoville, k):
  heap = []
  for x in scoville:
    heapq.heappush(heap, x)

  answer = 0
  while heap[0] < k:
    try:
      heapq.heappush(heap, heapq.heappop(heap) + (heapq.heappop(heap)*2))
      answer+=1
    except:
      return -1
    
  return answer
profile
Web Developer / Composer

0개의 댓글