Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

작은 지식주머니

프로그래머스 파이썬 더 맵게 본문

기타

프로그래머스 파이썬 더 맵게

작지 2021. 12. 7. 11:05

링크 : 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
Comments