작은 지식주머니
프로그래머스 파이썬 더 맵게 본문
링크 : https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
힙큐의 특성을 알아야 쉽게 해결이 가능하다
처음에 deque를 사용해서 미쳐버린 sort 50만번 작업을 할려했는데
다행히????? deque는 sort가 안된다고 하네요?????????????
heapq.heappush는 최소값을 우선해서 앞으로 넣기 때문에 이런 문제에 쓰기 딱 좋다.
heapqpop으로 야무지게 최소값 두개를 빼내서 a+(b*2) 를 하고
index에러가 나온다면 그냥 글러먹은것이니 -1를 출력
import heapq
def solution(scoville, K):
answer = 0
scoville.sort()
heap = []
for i in scoville:
heapq.heappush(heap,i)
while heap[0] < K:
if heap[0] < K:
try:
a = heapq.heappop(heap)
b = heapq.heappop(heap)
heapq.heappush(heap,a+(b*2))
answer += 1
except IndexError:
return -1
return answer
'기타' 카테고리의 다른 글
사내 스터디 기록 - AWS SUMMIT 2일차 (0) | 2023.07.25 |
---|---|
프로그래머스 파이썬 이중우선순위큐 (0) | 2021.12.07 |
프로그래머스 파이썬 프린터 (0) | 2021.12.07 |
프로그래머스 파이썬 구명보트 (0) | 2021.12.07 |
프로그래머스 파이썬 가장 먼 노드 (0) | 2021.12.07 |
Comments