알고리즘/문제풀이

[Python] Programmers 더 맵게

정찡이 2021. 10. 10. 20:52
728x90

1. 문제 링크

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

 

2. 문제 요약

가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 구하여 K 이상 음식 만들기

 

3. 아이디어 정리

  • heapq를 이용하여 최소 힙 구한다.

 

4. 문제 풀이

4-1. 내 풀이

import heapq

def solution(scoville, K):
    answer = 0
    heapq.heapify(scoville)
    while scoville[0] < K:
        try:
            first = heapq.heappop(scoville)
            second = heapq.heappop(scoville)
            heapq.heappush(scoville, first + (second * 2))
        except IndexError:
            return -1
        answer += 1
    return answer

 

 

5. 결론

  • 우선순위 큐 이용하기
반응형