코딩 테스트(Python)/백준, 프로그래머스
프로그래머스) 더 맵게
5_hyun
2022. 5. 1. 21:16
반응형
https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
내 풀이(질문 봄)
import heapq
def solution(scoville, K):
answer = 0
scoville.sort()
sum = 0
while scoville[0] < K:
if len(scoville) <= 1:
answer = -1
break
a = heapq.heappop(scoville)
b = heapq.heappop(scoville)
sum = a + (b*2)
heapq.heappush(scoville, sum)
answer += 1
return answer
거의 다 맞췄지만 처음에 sort()로 정렬을 해줘야하는 것을 빼 먹었다. sort()를 하면 heapfiy를 안해줘도 된다. 이렇게해서 scoville에 있는 모든 원소가 K보다 커질 때 까지 반복한다. 만약 scoville가 1개가 남았으면 더 이상 진행할 수 없다. 그래서 answer에 -1을 넣고 멈춘다.
반응형