Algorithm

[알고리즘/파이썬] queue를 이용한 stack 구현

토산인 2022. 9. 20. 23:22

큐를 이용해 스택을 구현해보자

 

먼저 큐(queue)는선입선출(FIFO)로 먼저 들어간 요소가 먼저 나오고

스택(stack)은 후입선출(LIFO)로 마지막에 들어간 요소가 가장 먼저 나온다.

 

구현할 스택 연산

push(x) : 요소 x를 스택에 삽입한다.

pop() : 스택의 첫 번째 요소를 삭제한다.

top() : 스택의 첫 번째 요소를 가져온다.

empty() : 스택이 비어 있는지 여부를 리턴한다.

 

 

class Stack :
	def __init__(self) :
		self.que = collections.deque()
        
	def push(self, int x) :
		self.que.append(x)
        
		for i in range(len(self.que)-1) :
			self.que.append(self.que.popleft())
            
	def pop(self) :
		return self.que.popleft()
        
	def top(self) :
		return self.que[0]
        
	def empty(self) :
		if len(self.que)==0 :
			return True
		else :
			return False