📝 Study Notes/Baekjoon
Implement Queue using Stacks (LeetCode)
lazyArtisan
2024. 10. 9. 18:14
문제 : https://leetcode.com/problems/implement-queue-using-stacks/
문제에서 스택 두 개 쓰라길래 어떻게 하라는지 모르겠어서 무시하고 일단 해봤는데 통과는 함
그것도 더 빠르게. 일종의 치팅이니까 일단 답을 보기로 함. gpt에게 물어봄.
def dequeue(self):
"""
큐에서 데이터를 제거 (FIFO)
"""
if not self.stack_out:
# stack_out이 비어있으면 stack_in에서 데이터를 옮긴다
while self.stack_in:
self.stack_out.append(self.stack_in.pop())
if self.stack_out:
return self.stack_out.pop()
else:
return None # 큐가 비어있을 때
LIFO인 스택에서 pop을 하면서 다시 LIFO인 다른 스택에 넣으면
원래 들어왔던 순서대로는 FIFO가 되니까
deque를 요청했을 때 다른 스택에 pop하면서 넣은 뒤에 하나 빼기
만약 다른 스택에 이미 뭐가 있었다면 일단 하나 빼기
천잰듯