728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42626
heap 을 사용해서 효율적으로 푸는 것이 중요했던 문제 !!
import heapq
def solution(scoville, K):
answer = 0
queue = []
# 초기 힙큐 구성
for i in scoville:
heapq.heappush(queue, i)
while queue[0] < K:
heapq.heappush(queue, heapq.heappop(queue) + heapq.heappop(queue) * 2)
answer += 1 # 섞는 횟수 + 1
# 예외 처리 K 이상이 안되는 경우
if len(queue) == 1 and queue[0] < K:
return -1
return answer
728x90
'Algorithm (PS)' 카테고리의 다른 글
[프로그래머스] 아이템 줍기 (BFS) - Python (0) | 2023.06.20 |
---|---|
[백준] 6593번: 상범 빌딩 (Python/파이썬) (0) | 2023.06.18 |
[leetcode] longest substring without repeating characters (0) | 2023.05.15 |
[LeetCode] Two Sum Python (0) | 2023.04.24 |
[프로그래머스] 카펫 (Python) - 완전탐색/Brute Force (0) | 2023.04.06 |