class CircularQueue: ## 빈 큐를 초기화 인자로 주어진 최대 큐 길이 설정 def __init__(self,n): self.maxCount = n self.data = [None] * n self.count = 0 self.front = -1 self.rear = -1 ## 현재 큐 길이를 반환 def size(self) : return self.count ## 큐가 비어있는가? def isEmpty(self): return self.count == 0 ## 큐가 꽉 차있는가? def isFull(self): return self.count == self.maxCount ## 큐에 데이터 원소 추가 def enqueue(self, x): if self.isFull(): # IndexError('Queue full')exception으로 처리 self.rear = (self.rear + 1) % self.maxCount self.data[self.rear] = x self.count += 1 ## 큐에서 데이터 원소 뽑아내기 def dequeue(self): if self.size() == 0 : raise IndexError('Queue empty') self.front = (self.front+1) % self.maxCount x = self.data[self.front] self.count -= 1 return x ## 큐의 맨 앞 원소 들여다보기 def peek(self): ifself.isEmpty(): raise IndexError('Queue empty') return self.data[(self.front+1) % self.maxCount]