🔸

문제23: 큐를 이용한 스택 구현

Created
Feb 12, 2023 06:03 AM
Tags
 

문제


큐를 이용해 다음 연산을 지원하는 스택을 구현하라.
 

입력


 

출력


MyStack stack = new MyStack() stack.push(1) stack.push(2) stack.top(); # 2 리턴 stack.pop(); # 2 리턴 stack.empty(); # false 리턴
 

풀이


  1. 구현 문제
    1. 스택이나 큐 ADT를 실제로 구현할 때는, 대게 스택은 연결리스트로 하고 큐는 배열로 한다. 이문제는 스택을 그저 활용하기만 하면 되지만, 만약 스택까지 직접 구현하게 된다면, 큐를 스택으로 구현하고, 스택은 연결리스트로 구현하는 구조가 될 것이다.
    2. 파이썬의 데크는 스택과 큐의 모든 기능을 제공하기 때문에 이문제는 원래 큐 ADT에는 없지만 파이썬의 자료형에서 지원하는 기능을 사용하면 매우 쉽게 풀수도 있다.
    3. 그러나 여기서는 문제의 의도에 맞게 큐의 FIFO에 해당하는 연산만 사용해서 구현해본다.
      1. 큐의 선언은 데크로 한다.
 
 

새로운 개념