반응형

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

 

해결 방법 : 최소 heap

import heapq

def solution(scoville, K):
    answer = 0
    heapq.heapify(scoville) # 힙 구성
    
    while len(scoville) > 1: # 하나 남을때까지
        food1 = heapq.heappop(scoville)
        food2 = heapq.heappop(scoville)
        if food1 >= K:
            return answer
        
        newFood = food1 + (food2 * 2) # 음식 조합
        heapq.heappush(scoville, newFood)
        answer += 1
    
    return answer if scoville[0] >= K else -1
반응형

'IT study > 알고리즘 문제 풀이' 카테고리의 다른 글

프로그래머스 : 순위  (0) 2021.06.29
프로그래머스 : 단어 변환  (0) 2021.06.28
백준 15486 : 퇴사 2  (0) 2021.06.24
백준 1010 : 다리 놓기  (0) 2021.06.24
프로그래머스 : 예상 대진표  (0) 2021.06.24

+ Recent posts