본문 바로가기

Problem Solving/programmers

[programmers] Level 2 더 맵게.py

728x90
반응형

프로그래머스 Level 2 더 맵게를 파이썬을 통해 풀어보았다. 

 

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

더 맵게.py

 

tomy9729/Algorithm

🐗 내가 직접 작성한 내 코드 🐗. Contribute to tomy9729/Algorithm development by creating an account on GitHub.

github.com

 

 

Level 2 더 맵게

설명

scoville에 대해서 가장 안 매운 음식과 두 번째로 안 매운 음식을 출력해야 한다. 이는 최소 힙으로 출력할 수 있다. 단 scoville의 길이가 1이면서 하나뿐인 음식이 K보다 작다면 더 이상 음식을 섞을 수 없으므로 -1을 출력한다.

 

최소 힙을 통해 가장 안 매운 음식과 두 번째로 안 매운 음식을 출력하고 섞는다. 새로운 음식이 생겼으므로 다시 scoville에 넣어준다. 이 과정을 반복하면 반복 횟수를 센다.

 

최소 힙으로 출력한 가장 안 매운 음식이 K보다 크다면 반복문을 종료한다.

코드

#Level 2 더 맵게
import heapq
def solution(scoville, K):
    answer = 0
    scoville.sort()
    while scoville[0] < K : 
        if len(scoville) == 1 :
            return -1
        temp = heapq.heappop(scoville)
        temp += heapq.heappop(scoville)*2
        heapq.heappush(scoville,temp)
        answer += 1
    return answer

 

728x90
반응형