Skip to content

Instantly share code, notes, and snippets.

@Park-Developer
Created May 22, 2021 14:26
Show Gist options
  • Save Park-Developer/ccde9ea3f085566b067f268f7b447fd6 to your computer and use it in GitHub Desktop.
Save Park-Developer/ccde9ea3f085566b067f268f7b447fd6 to your computer and use it in GitHub Desktop.
Stack With List
# 고정 길이 스택 클래스 구현하기(collections.deque 사용)
from typing import Any
from collections import deque
class Stack:
def __init__(self,maxlen:int=256)-> None:
'''스택 초기화'''
self.capacity=maxlen
self.__stk =deque([],maxlen)
def __len__()->int:
return len(self.__stk)
def is_empty(self)->bool:
return not self.__stk
def is_full(self)->bool:
return len(self.__stk)==self.__stk.maxlen
def push(self,value:Any)->None:
self.__stk.append(value)
def pop(self)-> Any:
return self.__stk.pop()
def peek(self)-> Any:
return self.__stk[-1]
def clear(self)->Any:
self.__stk.clear()
def find(self,value:Any)-> Any:
try:
return self.__stk.index(value)
except ValueError:
return -1
def count(self,value:Any)-> int:
return self.__stk.count(value)
def __contains__(self,value:Any)->bool:
return self.count(value)
def dump(self)->int:
print(list(self.__stk))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment