본문 바로가기

(3)
[프로그래머스] 프린터 - 파이썬 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄..
2.2 자료구조 큐(queue) - 원형 큐 원형 큐(Circle queue): 기존의 큐는 프론트 값이 계속 증가되면서 공간을 잡아먹는 문제가 있음, 원형큐는 연결리스트를이용하여 공간의 낭비 없이 큐를 구현한 것이다. 원형큐의 동작과정은 다음 그림과 같다. 원형 큐의 연산은 다음 표와 같다. 연산 설명 enQueue 큐에 데이터 삽입 deQueue 큐에 데이터 삭제 peek front 가르키는 데이터 확인 isEmpty 큐가 비어있는지 확인 isFull 큐가 꽉 차있는지 확인 다음은 파이썬을 이용한 원형큐 구현 소스코드이다. class CircleQueue: def __init__(self, size): self.data = [None] * size self.size = size self.count = self.rear = self.front =..
2.1 자료구조 큐(queue) - 선형 큐 큐(queue): 한쪽 방향으로 데이터가 삽입되고 반대 방향으로는 데이터가 삭제되는 구조. 큐는 가장 먼저 삽입된 데이터가 가장 먼저 삭제되므로 선입 선출(FIFO(First-in First-Out) 구조라고도 함. 1. 선형 큐(Linear Queue) 선형 큐는 가장 기본적인 큐로 선입 선출 구조를 가진다. 다음 그림은 선형 큐의 동작 과정이다. 큐는 위의 그림과 같이 동작을 한다. 다음 표는 큐의 연산이다. 연산 설명 enQueue 큐의 rear에 원소 삽입 deQueue 큐의 front에 원소 삭제 peek 큐의 front에 원소 확인 isEmpty 큐가 비어있는지 확인 파이썬으로 구현한 큐의 소스코드는 다음과 같다. class Queue: def __init__(self): self.data =..