티스토리 뷰
반응형
https://programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
⊙ 문제
⊙ 제한사항
⊙ 입출력 예
⊙ 입출력 예 설명
⊙ 문제 접근 과정
첫 번째로 작은 값과 두 번째로 작은 값*2을 더하여 K이상으로 변경해야 한다. 배열에서 작은 값을 찾기 위해
힙큐를 이용하여 문제를 풀었다.
가장 먼저 scoville 배열을 heapq의 heapify 함수를 이용하여 힙큐로 변경해준다.
그리고 pop을 해준다. 가장 작은 값이 pop된다.
그리고 또 pop을 해준다. 두 번째로 작은 값이 pop 된다. 이 값에는 2를 곱해준다.
두 값을 더해주어 다시 scoville에 추가해준다.
계속 반복해준다. 제일 작은 값이 K보다 커지거나 같을 때까지.
⊙ 문제 풀이
import heapq
def solution(scoville, K):
heapq.heapify(scoville)
minCnt = 0
while scoville[0]<K and len(scoville)>1:
mix = heapq.heappop(scoville)+(heapq.heappop(scoville)*2)
heapq.heappush(scoville,mix)
minCnt+=1
return minCnt if scoville[0]>=K else -1
⊙ 마무리
힙큐가 유용하다.
heapify를 사용하면 배열을 힙큐로 손쉽게 변경할 수 있다.
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'프로그래머스 > PYTHON [파이썬]' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 : 양과 늑대 - PYTHON[파이썬] (1) | 2022.03.05 |
---|---|
[프로그래머스] 코딩테스트 연습 : 피로도 - PYTHON[파이썬] (0) | 2021.11.07 |
[프로그래머스] 코딩테스트 연습 : 단어 변환 - PYTHON[파이썬] (2) | 2021.10.10 |
[프로그래머스] 코딩테스트 연습 : 최소직사각형 - PYTHON[파이썬] (0) | 2021.10.09 |
[프로그래머스] 코딩테스트 연습 : 기능개발 - PYTHON[파이썬] (0) | 2021.09.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 해답
- java
- 그리디
- py
- 정렬
- 문자열
- 프로그래머스
- CPP
- 파이썬
- 자바
- JS
- Web
- 쉽게 배우는 자바 프로그래밍
- 풀이
- 백준
- BFS
- Python
- 쉽게배우는
- 연습문제
- 답
- 쉽게배우는자바프로그래밍
- 우종정
- 구현
- 운영체제
- OS
- 정리
- C++
- 알고리즘
- 정답
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함