파이썬 스택의 최대 크기 지정

조회수 2362회

여기에 스택의 최대 크기를 지정할 수 있는 함수를 만들고 싶은데 어떻게 하면 되나요?

class MyStack:
    def __init__(self):
        self.myList = []
        self.top = -1
        self.size = 0

    def isEmpty(self):
        if (self.size > 0):
            return False
        else:
            return True

    def push(self, item):
        self.myList.append(item)
        self.size = self.size + 1
        self.top = self.top + 1

    def pop(self):
        if self.isEmpty():
            return None
        else:
            self.ret = self.myList.pop(self.top)
            self.size = self.top - 1
            self.top = self.top - 1
            return self.ret

    def peek(self):
        if self.isEmpty():
            return None
        else:
            return self.myList[self.top]
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • __init__에서 크기를 지정하게 해서 짜 보았습니다.

    class MyStack:
        def __init__(self, max_size):
            self.myList = []
            self.top = -1
            self.size = 0
            self.max_size = max_size
    
        def isEmpty(self):
            if self.size > 0:
                return False
            else:
                return True
    
        def push(self, item):
            if self.max_size < self.size:
                self.myList.append(item)
                self.size = self.size + 1
                self.top = self.top + 1
            else:
                raise ValueError('max size limit exceeded')
    
        def pop(self):
            if self.isEmpty():
                return None
            else:
                self.ret = self.myList.pop(self.top)
                self.size = self.top - 1
                self.top = self.top - 1
                return self.ret
    
        def peek(self):
            if self.isEmpty():
                return None
            else:
                return self.myList[self.top]
    

    크기제한에 걸리면 ValueError를 냅니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)