programmers - 더 맵게

resilient

·

2021. 6. 1. 21:59

728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

자료구조 우선순위 큐(Priority Queue)와 힙(heap)

먼저 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조이다. 우선순위 큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용한다. 스택(Stack) 자료구조에서 추출되는

resilient-923.tistory.com

위에 내가 정리한 글이다. Heap 구조만 알면 풀 수 있는 문제였다.

import heapq

def solution(scoville, K):
    heap = []
    answer = 0
    for i in scoville:
        heapq.heappush(heap,i)
    num = 0
    while heap[0]<K:
        if len(heap)==1:
            return -1
        a = heapq.heappop(heap)
        b = heapq.heappop(heap)
        num = a+b*2
        heapq.heappush(heap,num)
        answer+=1
        if heap[0]>K:
            return answer
반응형