heapq3 [프로그래머스] [Python] Level3_디스크 컨트롤러 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 1차 시도 import heapq def solution(jobs): jobR = [] jobs.sort() sum = jobs[0][1] #총 수행시간 for i in range(1, len(jobs)): jobR.append(list([jobs[i][1], jobs[i][0]])) # print(jobR) #[소요시간,요청시점] while(jobR): .. 2021. 8. 5. [프로그래머스] [Python] Level2 - 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 유형 : 힙 Heap 1차 시도 import heapq def solution(scoville, K): sum = 0 answer = 0 heapq.heapify(scoville) while(True): min1 = heapq.heappop(scoville) if len(scoville) == 0 : answer = -1 break if min.. 2021. 8. 2. [ Python ] | heapq 사용법 | heapsort, 우선순위큐 1. 정의 complete binary tree 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공 => 원소들이 항상 정렬된 상태로 추가되고 삭제 2. 선언 import heapq #다른 list를 heap으로 만든다 heapq.heapify(list) #새로 선언 heap = [] heapq 모듈은 일반 list로 선언해도 heap으로 쓸 수 있다. 자바의 PriorityQueue 클래스처럼 리스트와 별개의 자료구조가 아닌 점에 유의해야함. 3. 기본 메소드 #원소추가 heapq.heappush(list, x) #(heap, 원소) #원소삭제 -> 최소값 삭제(반환) heapq.heappop(list) #삭제하지않고 최소값 얻기 heap[0] 4. 활용 기본 제공되는 .. 2021. 8. 2. 이전 1 다음