Implement Queue using Stack.
The complexity of this approach relies on the fact that queue is a LIFO structure (Last-In, First-Out), where stack is a FIFO (First-In, First-Out) structure.
In queue push adds element at the end of the queue, where pop takes element from front of the queue.
In stack push adds element at the front of the stack and pop takes element again from from of the stack.
In order to solve this problem you will need to use two stacks.
Because you are using stack there will be always some performance problem you need to take into consideration. You can either optimize this algorithm for push or pop.