먼저 생각하기 · 기초
sq64 predict · Gold 64상태 discipline trace 감사실: “stack/FIFO/deque/bounded-ring 추상 상태를 Python·C++·Java·Rust의 직접 타입·동시성·성능 보장으로 복사한다.” 조건에서 반환값·상태·overflow/underflow 판정을 실행 전에 봉인한다.
capacity 5의 language-neutral circular queue R을 예측한다. R은 buffer=[_,_,_,_,_], head=0, tail=0, size=0에서 시작하고 enqueue A,B,C, dequeue, enqueue D,E, dequeue, enqueue F,G,H를 순서대로 수행한다.
각 command 뒤 반환값, head, tail, size, physical buffer와 head부터 읽은 logical FIFO order를 표로 예측하세요. wrap과 overflow를 구분하고 H 처리 뒤 state가 왜 유지되는지 설명하세요.
- enqueue(x)는 size=capacity이면 OVERFLOW를 반환하고 아무 field도 바꾸지 않는다.
- 그 외 enqueue는 buffer[tail]=x, tail=(tail+1) mod capacity, size+=1 순서로 수행한다.
- dequeue는 size=0이면 UNDERFLOW를 반환하고 아무 field도 바꾸지 않는다.
- 그 외 dequeue는 buffer[head]를 반환하고 head=(head+1) mod capacity, size-=1로 갱신한다. 제거 slot의 stale 값은 logical order에 포함하지 않는다.
- head=tail만으로 empty와 full을 판정하지 않고 size를 함께 사용한다.
연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.
