프로그래머스 - 더 맵게

서유진·2022년 3월 10일
0

코테뿌셔

목록 보기
2/9

미숙한 제 풀이는 정답이 될 수 없으며, 이것보다 효율적인 코드는 당연히 존재합니다.
참고만 하여 주시고, 관련 피드백은 항상 환영합니다. 🤍

	import heapq

    def solution(scoville, K):
        answer = 0
        heap_scoville = []
        heapq.heapify(scoville)

        while scoville[0] < K:
            # 새로운 음식 만들기
            A = scoville[0]
            heapq.heappop(scoville) # 두번째로 작은 값(음식) 구하기, 
            						# heap특성상 index1이 두번째로 작다는 보장이 없음
            B = scoville[0]
            temp = A + (B * 2)

            # 새로 만든 스코빌 음식 추가
            heapq.heappush(scoville, temp)

            # 만들 때 사용한 음식 중 두번째 음식 제거
            heapq.heappop(scoville)

            answer = answer+1

            # 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우
            if len(scoville) == 1 and scoville[0] < K: 
                answer = -1
                break

        return answer
profile
Backend Dev.

0개의 댓글