본문 바로가기

알고리즘/고찰(?)

stack, queue reverse

[1. 개요]

queue 를 reverse 해야 할 때, 주의 할 점(?)


[2. 잘못된 구현]

for (int i=1; i<q.size(); i++) {
    const int v = q.front();
    q.pop();
    q.push(v);
}

queue 에 저장된 순서를 바꿔야 할 때,

q: [1, 2, 3, 4, 5]

  • expected: [5, 4, 3, 2, 1]
  • result : [5, 1, 2, 3, 4]

당시에 뭔가 착각했었음,


[3. 맞는 구현?]

while (q.size() > 0) {
    st.push(q.front());
    q.pop();
}

while (st.size() > 0) {
    q.push(st.top());
    s.pop();
}

 

큐의 경우, 스택을 이용하도록 하고,

스택은, 큐를 이용하여 뒤집을 수 있도록 한다.

'알고리즘 > 고찰(?)' 카테고리의 다른 글

중복 된 숫자 개수 세기  (0) 2024.08.15