programmers - 더 맵게
resilient
·2021. 6. 1. 21:59
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
- 이 문제는 heap을 이용한 문제이다.
- 처음에 while 조건문을 num<K 로 둬서 계속 백점이 나오지않았다.
- heap[0]<K로 수정해서 정답을 맞췄다.
- 2021.05.19 - [Algorithm/알고리즘 및 자료구조] - 자료구조 우선순위 큐(Priority Queue)와 힙(heap)
자료구조 우선순위 큐(Priority Queue)와 힙(heap)
먼저 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조이다. 우선순위 큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용한다. 스택(Stack) 자료구조에서 추출되는
resilient-923.tistory.com
위에 내가 정리한 글이다. Heap 구조만 알면 풀 수 있는 문제였다.
import heapq
def solution(scoville, K):
heap = []
answer = 0
for i in scoville:
heapq.heappush(heap,i)
num = 0
while heap[0]<K:
if len(heap)==1:
return -1
a = heapq.heappop(heap)
b = heapq.heappop(heap)
num = a+b*2
heapq.heappush(heap,num)
answer+=1
if heap[0]>K:
return answer
반응형
'자료구조 & 알고리즘 > 프로그래머스(programmers)' 카테고리의 다른 글
programmers - 거리두기확인하기 (0) | 2021.07.17 |
---|---|
programmers - 행렬 테두리 회전하기 (0) | 2021.06.19 |
programmers - 셔틀버스 (0) | 2021.05.29 |
programmers - 카펫(파이썬) (0) | 2021.05.14 |
programmers - 네트워크(파이썬) (0) | 2021.05.13 |