m1ndy5's coding blog

LeetCode 232. Implement Queue using Stacks with Python 본문

알고리즘 with python/알고리즘 스터디

LeetCode 232. Implement Queue using Stacks with Python

정민됴 2024. 1. 4. 10:17

https://leetcode.com/problems/implement-queue-using-stacks/

class MyQueue:

    def __init__(self):
        self.stack = []
        self.pointer = 0

    def push(self, x: int) -> None:
        self.stack.append(x)

    def pop(self) -> int:
        tmp = self.stack[self.pointer]
        self.pointer += 1
        return tmp

    def peek(self) -> int:
        return self.stack[self.pointer]

    def empty(self) -> bool:
        return self.pointer == len(self.stack)

Stack을 이용하여 Queue를 만들어보는 거였는데 흐음 이걸 스택을 사용해서 풀었다고 하기엔 좀 애매한 것 같다
Stack의 pop을 사용해서 풀어야했나 싶긴한데 그럼 너무 효율성이 떨어질 것 같아서 포인터를 사용해 풀었다.
이 코드의 단점은 포인터를 움직여서 Pop된 것처럼 보이게 했는데 사실은 데이터가 존재하고 있어서 메모리 사용면에서는 아~~주 별로인 코드인 것 같다.
노드로 구현하고 릴리즈 해주거나 진짜 한칸씩 계속 보내서 팝을 해주거나 하면 메모리적으로는 괜찮을 것같다!