개발 공부용

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

코딩 테스트/99클럽 TIL

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

솝제로 2025. 2. 11. 07:03

 

문제
섞은 음식의 스코빌 = 가장 안매운 음식 스코빌 + 두번째로 안매운 음식 스코빌*2
모든 음식의 스코빌 지수가 K이상이 될 때까지 반복하여 섞기

 

 

입력
  • 배열 scoville(2<=len(scoville)<=1,000,000)K
  • K(0<=K<=1,000,000,000)

 

출력
  • 모든 음식의 스코빌 지수를 K이상으로 만들기 위해 섞어야 하는 최소 횟수
  • 모든 음식의 스코빌 지수를 K이상으로 만들 수 없는 경우 -1 리턴

 

작성한 코드
import heapq

def solution(scoville, K):

    heapq.heapify(scoville)
    
    count = 0
    
    while True:
        if(len(scoville)>=2):
            smallest = heapq.heappop(scoville)
        
            if(smallest<K):
                new = smallest+(heapq.heappop(scoville))*2
                heapq.heappush(scoville,new)
                count+=1
            else:
                return count
                
        else:
            if(new<K):
                return -1
            else:
                return count

 

두 개이상의 요소가 scoville에 남아있어야 음식을 섞을 수 있기 때문에 그것을 기준으로 문제를 풀었다.

 

'코딩 테스트 > 99클럽 TIL' 카테고리의 다른 글

[백준] 14235 - 크리스마스 선물  (0) 2025.02.13
[Leetcode] 506. Relative Ranks  (0) 2025.02.12
[백준] 4949 - 균형 잡힌 세상  (0) 2025.02.08
[백준] 26043 - 식당 메뉴  (0) 2025.02.07
[백준] 10845 - 큐  (0) 2025.02.06