https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
import heapq
def solution(scoville, K):
scoville.sort()
answer = 0
while scoville[0] < K:
if len(scoville) >= 2:
a = heapq.heappop(scoville)
b = heapq.heappop(scoville)
c = a + (b*2)
heapq.heappush(scoville,c)
answer+=1
else:
answer = -1
return answer
return answer
https://www.daleseo.com/python-heapq/
[파이썬] heapq 모듈 사용법
Engineering Blog by Dale Seo
www.daleseo.com
이 문제를 풀기위해서는 heapq(힙) 이라는 모듈을 사용해야한다.
힙은 최단경로 특히 다익스트라 알고리즘에 많이 사용되므로 꼭 알아두자!
문제조건을 조금 대충? 읽어서 생각보다 오래 걸렸다
(while문 안에 else: 조건을 안걸어서 틀림)
이 문제의 핵심 아이디어는 k보다 작은 애들만 집중적으로 공략하여 값의 크기를 올려주면 끝이다.
반응형
'코딩 > 프로그래머스 lv2' 카테고리의 다른 글
[프로그래머스] [3차] 방금그곡 - 파이썬 (0) | 2022.03.08 |
---|---|
[프로그래머스] [1차] 프렌즈4블록 - 파이썬 (0) | 2022.03.04 |
[프로그래머스] 뉴스 클러스터링- 파이썬 (0) | 2022.02.21 |
[프로그래머스] 순위 검색 - 파이썬 (0) | 2022.02.06 |
[프로그래머스] 짝지어 제거하기 - 파이썬 (0) | 2021.10.30 |