본문 바로가기
Algorithm/스택&큐&덱&힙

[프로그래머스 lv 2] 더 맵게

by HANNI하니 2023. 6. 16.

사용 언어 - Python3

문제 - 더 맵게

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

import heapq (정답 맞춘 여부 X)

1. 차례대로 힙에 삽입 heappush

2. heap[0] = 가장 작은 값이 K보다 클때까지 while문을 반복해준다.

3. 계산한 값 heappush로 삽입

가장 맵지 않은 음식의 스코빌 지수 heapq.heappop(heap)

두 번째로 맵지 않은 음식의 스코빌 지수 heapq.heappop(heap)

만약 리스트가 작아서 heappop()할 게 없어서 indexError가 난다면, 

-1을 return 한다. 

4. 새롭게 계산한 값 개수 cnt 출력

import heapq

def solution(scoville, K):
    heap = []
    for i in scoville:
        heapq.heappush(heap,i)

    cnt = 0
    while heap[0] < K:
        try:
            heapq.heappush(heap, heapq.heappop(heap)+heapq.heappop(heap)*2)
        except IndexError:
            return -1
        cnt += 1

    return cnt

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글