class Stack :
def __init__( self ) :
self.top = []
# push : 새 항목을 스택 최상단에 삽입
def push(self, elem) :
self.top.append(elem)
# pop : 스택 최상단(index = -1) 의 자료를 반환하며 스택에서 제거
def pop(self) :
if not self.isEmpty() :
return self.top.pop(-1)
# peek : 스택의 최상단 항목을 삭제하지 않고 반환
def peek( self ):
if not self.isEmpty():
return self.top[-1]
def isEmpty(self) :
return len(self.top) == 0
def size(self) :
return len(self.top)
def clear(self) :
self.top = []
# str : 스택의 최상단 요소부터 출력, 역순 슬라이싱 이용
def __str__( self ) :
return str(self.top[::-1])