⚡️algorithm

[힙] 프로그래머스. 더 맵게

남남이루 2022. 5. 23. 15:01

문제

스코빌 지수를 K이상으로 만들고 싶어서, 스코빌 낮은 음식을 더 맵게 만들기 위해
가장 맵지 않은 음식이랑 그다음으로 안 매운 음식*2 를 섞어서 새로운 음식을 만들거야.
모든 음식의 스코빌지수가 K이상이 될 때까지 반복한다면, 몇 번 섞어야 하니?

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

  • heappop(배열)
    : 제일 작은 원소 꺼내기
  • heappush(원소, 배열)
    : 원소 넣기

 

import heapq as hq
def solution(scoville, K):

    ans = 0
    hq.heapify(s)
    while True:
        if len(s) == 1 and s[0] <k:
            return -1
        if s[0] >=k:
            return ans
        small = hq.heappop(s)
        second = hq.heappop(s)
        new = small + 2*second
        hq.heappush(s,new)
        ans += 1




s = [1, 2, 3, 9, 10, 12]
k = 7
print(solution(s,k)==2)