반응형
프로그래머스(programmers) 더 맵게 python 정답 [힙(heap)]
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42626
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 정답
입출력 예
scoville | K | return |
[1, 2, 3, 9, 10, 12] | 7 | 2 |
정답 코드
from heapq import heappush,heapify,heappop
def solution(scoville, K):
answer = 0
q = scoville[:]
heapify(q)
while q:
first = heappop(q)
if first >=K:
return answer
if not q:
return -1
second = heappop(q)
newItem = first + second * 2
heappush(q,newItem)
answer +=1
return -1
문제 해설
우선순위 큐 === 힙이다.
first >=K 부분에서 첫번째 아이템을 검사하고 조건에 해당하면 answer를 리턴한다.
만약 q가 비어져 있으면, 불가능한 조건이므로 -1을 리턴한다.
그 다음 부분은 문제의 설명에 따라 섞는 것을 단순히 구현하는 부분이다.
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스(programmers) 이중순위우선큐 python 정답 [힙(heap)] (0) | 2023.03.17 |
---|---|
프로그래머스(programmers) 디스크 컨트롤러 python 정답 [힙(heap)] (0) | 2023.03.17 |
프로그래머스(programmers) H-index python 정답 [정렬] (0) | 2023.03.17 |
프로그래머스(programmers) K번째수 python 정답 [정렬] (0) | 2023.03.16 |
프로그래머스(programmers) 가장 큰 수 python 정답 [정렬] (0) | 2023.03.16 |