[프로그래머스]-더 맵게

이정연·2022년 10월 13일
0

CodingTest

목록 보기
2/165

저도 매운 음식을 참 좋아하는데요. 한 번 문제를 풀어보도록 하겠습니다.

목표 시간: 60분
마감 시간: 01:00
제출 시간: 00:40

👨🏻‍💻 CODE

import heapq as h
# 문제 조건 충족 검사
def check(heap,K):
    for num in heap:
        if num < K:
            return False
    return True

def solution(scoville, K):
    answer = 0
    heap = []
    # 스코빌 지수를 힙으로 변환
    for num in scoville:
        h.heappush(heap,num)
    # 아래 과정을 문제 조건 충족까지 반복
    while True:
        # 원 힙 < K = 문제 조건 충족 불가
        if len(heap) == 1 and not check(heap,K):
            answer = -1
            break
        if check(heap,K):
            break
        # 제일 작은, 두 번째로 작은 스코빌 추출
        small = h.heappop(heap)
        s_small = h.heappop(heap)

        # Leo의 방식대로 음식 섞기
        new_sco = small + s_small*2
        # 섞을 때마다 카운트
        answer += 1
        # 새로운 스코빌 지수 힙에 넣기
        h.heappush(heap,new_sco)

    return answer
profile
0x68656C6C6F21

0개의 댓글