결론만 말하자면, 스택 하나는 받은 걸 빼내는 용도. (스택 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-구현하기
'컴퓨터공학' 카테고리의 다른 글
[1일1cs] 브라우저에 url을 입력하면? (0) | 2022.07.11 |
---|---|
[1일1cs] hashmap, hashtable (0) | 2022.07.10 |
[1일1cs] 페이지 교체 알고리즘 (0) | 2022.07.09 |
[1일1cs] 트랜잭션에서의 데드락 (0) | 2022.07.08 |
[1일1cs] 3 way handshake 4way handshake (0) | 2022.07.06 |