프로그래머스(Python) 풀이/Level.2

프로그래머스(Python) 42626번 더 맵게 풀이

개발윗미 2022. 5. 5. 14:05

Python으로 구현한 42626번 더 맵게 문제 풀이입니다.

 

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr


import heapq

def solution(scoville, K) :
    answer = 0
    target = []
    for value in scoville :
        heapq.heappush(target, value)

    while target[0] < K :
        try :
            heapq.heappush(target, heapq.heappop(target) + (heapq.heappop(target) * 2))
            answer += 1
        except :
            return -1

    return answer

 

1. heapq를 통해 target에 scoville 리스트의 요소들을 삽입한다.

 

2. 가장 크기가 작은 원소가 K 이상이 될 때까지 반복 수행하며, 두 원소를 꺼내 아래와 같이 연산하여 target에 추가한다.

  - 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맴지 않은 음식의 스코빌 지수 * 2)

 

3. 위 연산 작업을 수행하면 answer 값을 1 증가시킨다.

 

4. 반복 수행이 종료되면 answer을 반환하고, 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없을 경우 -1을 반환한다.