티스토리 뷰
반응형
https://programmers.co.kr/learn/courses/30/lessons/42626
⊙ 문제
⊙ 제한사항
⊙ 입출력 예
⊙ 입출력 예 설명
⊙ 문제 접근 과정
첫 번째로 작은 값과 두 번째로 작은 값*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
- 파이썬
- 쉽게배우는
- 운영체제
- 정렬
- 풀이
- 답
- 백준
- 쉽게배우는자바프로그래밍
- 자바스크립트
- CPP
- 정답
- py
- 정리
- java
- 알고리즘
- 쉽게 배우는 자바 프로그래밍
- Python
- 프로그래머스
- 문자열
- Web
- 우종정
- 그리디
- 연습문제
- 구현
- C++
- 자바
- 해답
- JS
- OS
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함