본문 바로가기

컴퓨터공학

[1일1cs] stack두개로 queue 만들기

결론만 말하자면, 스택 하나는 받은 걸 빼내는 용도. (스택 2) 하나는 새로 유입된 걸 넣는 용도(스택 1)
스택 1에 먼저 1 2 3 4 를 차례로 넣으면 stack으로 빼낼 시 4 3 2 1이 된다(LIFO)
이를 스택 2에 넣는다. 그렇다면 아래 부터 4 3 2 1이 되므로 1 2 3 4 로 나온다
하지만 stack2가 비어있지 않은 상태라면, 새로 들어온 것들을 스택 1 에 일단 넣는다. 그리고 스택2를 빼내서 비우고 1에 새로 유입된 것들을 다시 스택2에 넣고 스택2에서 빼낸다.

같은 로직, 시각화된 블로그 : https://velog.io/@wonhee010/Stack-2개로-Queue-구현하기