Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- django
- 슈퍼셋
- 코딩 테스트
- 코테 연습
- PCCP
- 팀 프로젝트
- cloud platform
- Spark
- Kafka
- SQL
- 데이터 시각화
- 데이터 엔지니어
- VPC
- Snowflake
- 데브코스
- GCP
- Tableau
- AWS
- beuatifulsoup
- airflow
- HTML
- Til
- Selenium
- superset
- 코딩테스트
Archives
- Today
- Total
주니어 데이터 엔지니어 우솨's 개발일지
더 맵게 본문
문제 설명
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.
Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.
제한 사항
- scoville의 길이는 1 이상 1,000,000 이하입니다.
- K는 0 이상 1,000,000,000 이하입니다.
- scoville의 원소는 각각 0 이상 1,000,000 이하입니다.
- 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while True :
min1 = heapq.heappop(scoville)
if min1 >= K :
break
elif len(scoville) == 0 :
answer = -1
break
min2 = heapq.heappop(scoville)
new_scoville = min1 + 2 *min2
heapq.heappush(scoville, new_scoville)
answer +=1
return answer