[프로그래머스 더 맵게] 파이썬 풀이
문제
힙의 원소를 넣고 빼는 기본 문제
Keypoints
- heapq library를 사용해야 한다.
- 조건을 만족하면 힙의 원소를 빼기 전에 종료해야 한다.
- 두 원소를 빼고 힙의 조건을 고려하면 만족하지 않았을 때 다시 집어넣어줘야 한다. 이러한 수고를 덜기 위해서 빼지 않은 상태에서 종료 조건의 일치여부를 판단한다.
Solution
from heapq import heapify, heappop, heappush
def solution(scoville, K):
heapify(scoville)
count = 0
while len(scoville)>1 : # Require more than 1 element to shuffle
if scoville[0] >= K: # No reason to suffle
break
a = heappop(scoville)
b = heappop(scoville)
count += 1
heappush(scoville, a+b*2) # Suffle
if scoville[0] < K : # doesn't satisfy the condition
return -1
else:
return count
References
'프로그래밍' 카테고리의 다른 글
[프로그래머스 스킬트리] 파이썬 풀이 (0) | 2021.02.14 |
---|---|
Study plan 1 (1) | 2021.02.13 |
[프로그래머스 주식 가격] 파이썬 풀이 (0) | 2021.02.11 |
[프로그래머스 1차 추석트래픽] 파이썬 풀이 (0) | 2021.02.10 |
[프로그래머스 삼각달팽이] 파이썬 풀이 (0) | 2021.02.09 |