프로그래머스 더 맵게

DARTZ·2022년 5월 23일
0

알고리즘

목록 보기
71/135
import heapq # 힙을 쓰기 위한 힙 라이브러리

def solution(scoville, K):
    answer = 0
    
    heapq.heapify(scoville) # 기존 배열을 힙구조로 변환
    
    while True:
        result = heapq.heappop(scoville) # 힙에서 결과를 출력해서
        
        if not scoville: # 힙에 더 이상 음식이 없다면 종료
            break

        if result < K: # 꺼낸 음식이 기준보다 작을경우
            result2 = heapq.heappop(scoville) # 그 다음으로 매운 음식을 가져온다.
            mix_result = result + (result2 * 2) # 계산식으로 결과 값을 만들어준다.
            heapq.heappush(scoville, mix_result) # 힙에 넣는다.
            answer += 1 # 카운트 1증가

        else: # 힙에서 꺼낸 최솟값이 기준 이상일 경우 종료
            break
            
    if result < K: # 만약에 결과가 기준보다 낮을경우 (아무리 해도 전부 만들 수 없는 경우) -1 반환
        return -1

    else: # 아니면 카운트 반환
        return answer

힙 문제였다.

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글