-
[프로그래머스] 더 맵게Engineering WIKI/Programmers 2022. 6. 4. 08:38
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
heapq 모듈 사용법
[파이썬] heapq 모듈 사용법
Engineering Blog by Dale Seo
www.daleseo.com
heap = [4, 1, 7, 3, 8, 5] heapq.heapify(heap) print(heap)
[1, 3, 5, 4, 8, 7]
heapify() 함수에 리스트를 인자로 넘기면 리스트 내부의 원소들의 위에서 다룬 힙 구조에 맞게 재배치되며 최소값이 0번째 인덱스에 위치됩니다. 즉, 비어있는 리스트를 생성한 후 heappush() 함수로 원소를 하나씩 추가한 효과가 납니다. heapify() 함수의 성능은 인자로 넘기는 리스트의 원소수에 비례합니다. 즉 O(N)의 시간 복잡도를 가집니다.
내 풀이
import heapq as hq def solution(scoville, K): hq.heapify(scoville) answer = 0 while True: first = hq.heappop(scoville) if first >= K: break if len(scoville) <= 1: return -1 second = hq.heappop(scoville) hq.heappush(scoville, first + second*2) answer += 1 return answer
'Engineering WIKI > Programmers' 카테고리의 다른 글
[프로그래머스] 영어 끝말잇기 (0) 2022.06.01 [프로그래머스] 가장 큰 정사각형 (0) 2022.06.01 [프로그래머스] 구명보트 (0) 2022.05.31 [프로그래머스] [1차] 캐시 (0) 2022.05.30 [프로그래머스] 땅따먹기 (0) 2022.05.26 [프로그래머스] 다음 큰 숫자 (0) 2022.05.25 [프로그래머스] 올바른 괄호 (0) 2022.05.24 [프로그래머스] 숫자의 표현 (0) 2022.05.24