티스토리 뷰

 

안녕하세요. 죠쵸입니다.

오래동안 휴식의 시간을 갖고 나니, 다시 무언가를 시작하고 싶은 마음이 들게 되었습니다. 그래서 다시 LeetCode를 풀기 시작했답니다. 오늘 문제는 스택(Stack)을 구현하는 문제입니다.

스택(Stack)이라는 자료구조는 LIFO(Last In First Out)로, 동전통(동전탑)을 생각하시면 이해하기 쉽습니다. 동전통에 동전을 넣고, 꺼낼 때, 가장 먼저 넣은 동전은 가장 나중에 꺼내게 되고, 가장 나중에 넣은 동전이 가장 먼저 꺼내서 사용되는 것처럼 자료를 운영하는 구조입니다.

 

https://leetcode.com/problems/implement-stack-using-queues/

 

Implement Stack using Queues - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

#LeetCode 225. Implement Stack using Queues (Description)

 

스택(Stack)을 구현을 할 때, Queue의 이용하여 POP, TOP, PUSH, EMPTY 함수를 구현해야 합니다.

POP은 가장 위의 Data를 꺼내 와 그 값을 반환 하는 함수이고, TOP 가장 위의 Data를 꺼내지는 않고, 값만 반환하는 함수입니다. PUSH의 경우는 Data를 가장위에 삽입하는 함수이며, EMPTY함수의 경우는 스택(Stack)에 Data가 있을 경우 False를 반환하고, Data가 없을 경우 True를 반환하는 함수 입니다.

 

 

#LeetCode 225. Implement Stack using Queues (Solution)

 

Python에서 기본적으로 제공하는 collections.deque 를 사용해서 Queue의 기능을 사용할 수 있습니다. 스택(Stack) Class의 내부함수 POP, TOP, PUSH, EMPTY 를 구현 한 내용은 아래의 코드를 참조 부탁 드립니다.

class MyStack:

    def __init__(self):
        self.q = collections.deque()

    def push(self, x: int) -> None:
        self.q.append(x)
        for _ in range(len(self.q) - 1):
            self.q.append(self.q.popleft())

    def pop(self) -> int:
        return self.q.popleft()

    def top(self) -> int:
        return self.q[0]

    def empty(self) -> bool:
        return len(self.q) == 0

 

위의 코드를 LeetCode에 제출하여, 내부 Test가 정상적으로 처리되었습니다.  

 

방문해 주셔서 감사합니다. 여러분의 공감하기(), 댓글과 구독은 저에게 힘이 됩니다.

이상으로 죠쵸였습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함