전체 글 527

[Queue] 프린터

프린터 문제 김코딩은 최근 인쇄할 일이 많이 생겨 창고에서 안 쓰던 프린터를 꺼냈습니다. 이 프린터의 성능을 테스트하여 새로운 프린터를 장만할지 결정하려고 합니다. 김코딩은 프린터의 인쇄 작업 목록의 크기와 최대 용량을 가정하고 각기 다른 용량의 문서를 차례대로 인쇄하여 모든 문서가 인쇄되는데 최소 몇 초가 걸리는지 테스트하기로 했습니다. 프린터 인쇄 작업 목록의 제한사항은 다음과 같습니다. [제한사항] 인쇄 작업 목록은 칸으로 이루어져 있습니다. 각 칸에는 한 개의 문서만 위치할 수 있습니다. 문서는 1초에 한 칸만 이동할 수 있습니다. 인쇄 작업 목록의 크기는 bufferSize이고 최대 용량 capacities 만큼 문서를 담을 수 있습니다. 만약, 인쇄 작업 목록의 크기가 2이고 최대 용량이 10..

우선순위 큐, 힙

우선순위 가장 높은 데이터를 가장 먼저 삭제하는 자료구조입니다. 예를 들어 여러 개의 물건 데이터를 자료구조에 넣었다가 가치가 높은 물건 데이터부터 꺼내서 확인해야하는 경우 우선순위 큐를 이용할 수 있습니다. python, C++, java를 포함한 대부분의 프로그래밍 언어에서 표준 라이브러리 형태로 지원합니다. 자료구조 추출되는 데이터 스택(Stack) 가장 나중에 삽입된 데이터 큐(Queue) 가장 먼저 삽입된 데이터 우선순위 큐(Priority Queue) 가장 우선순위가 높은 데이터 힙 우선순위 큐를 구현하기 위해 사용하는 자료구조 중 하나입니다. 최소 힙(Min Heap)과 최대 힙(Max Heap)이 있습니다. 다익스트라 최단 경로 알고리즘을 포함해 다양한 알고리즘에서 사용 우선순위 큐 구현 ..