티스토리 뷰
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
프로그래머스_힙_더맵게
- 계산식: 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
- 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때,
모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return - 불가능하면 -1 return
풀이방식
- heapq를 이용
힙
- 힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해
고안된 완전이진트리(complete binary tree)를 기본으로 한 자료구조(tree-based structure) - 힙으로 최대 최소 값을 찾아 우선순위 큐생성이 가능
- 최소값이면서 K값보다 작은 요소 순서대로 스코빌 지수 생성
- 최소 횟수 도출 가능
코드 구현
- 작은 순서대로 처리하는 우선순위 큐 생성(h)
- 스코빌 지수 리스트를 오름차순 정렬
- 가장 작은 수가 K보다 작을 때까지(<-> 크면 모든 음식 스코빌 지수가 K이상)
- 불가능하면 return -1
import heapq
def solution(sco,k):
cnt=0
h = []
for s in sco:
heapq.heappush(h, s)
while h[0]<k:
try:
heapq.heappush(h,(heapq.heappop(h)+heapq.heappop(h)*2))
except:
return -1
cnt+=1
return cnt
'프로그래밍연습 > 파이썬 알고리즘' 카테고리의 다른 글
Programmers_Python_stack+queue_주식가격 (0) | 2023.07.01 |
---|---|
Programmers_Python_stack+queue_프린터 (0) | 2023.07.01 |
Programmers_Python_stack+queue_기능개발 (0) | 2023.07.01 |
Programmers_Python_heap_이중우선순위큐 (0) | 2022.10.03 |
Programmers_Python_heap_디스크 컨트롤러 (0) | 2022.08.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SQL
- 사분위수
- Python
- neural network
- 코딩테스트
- 중앙값
- random forest
- Lambda
- 뇌하수체선종
- 평균
- counter
- 상관관계
- 뇌하수체
- 쿠싱
- hash
- 쿠싱증후군
- 통계
- programmers
- 분당서울대병원
- 확률
- 확률분포
- 프로그래머스
- 힙
- 분산
- 상대도수
- 군고구마
- leatcode
- TensorFlow
- 파이썬
- 조건부확률
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함