학습 본문으로 건너뛰기
VAIRODE
stack·queue·deque64번째 작은 수업
오늘은 질문 하나만 해결해요64 / 72

도움 없이 한 번 더 풀어보기

Gold 64상태 discipline trace 감사실

오늘의 질문

discipline 4개, operation trace 4개, scale 4개의 64상태에서 removal order·endpoint·empty/full·wrap·cost를 비교하되 추상 모델을 언어별 runtime 보장으로 등치하지 않는다. 이를 생략하면 stack/FIFO/deque/bounded-ring 추상 상태를 Python·C++·Java·Rust의 직접 타입·동시성·성능 보장으로 복사한다.에서도 예제 순서는 맞을 수 있지만 경계·부하·동시성에서 반증 가능한 discipline 결정은 남길 수 없습니다.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.

01 · 혼자 확인해요

연습한 문제를 다시 풀며 혼자 확인하기

지금은 방금 연습한 문제를 다시 보는 시간이에요.아직 “완전히 익혔다”고 기록하지 않아요. 나중에 모양이 다른 문제도 도움 없이 풀면 그때 다시 확인할 수 있어요.

답과 과정 확인
80% 이상
내 말로 설명
80% 이상
막힌 곳 고치기
80% 이상
다른 문제에 써보기
80% 이상
스스로 확인하며 작성 중인 답0 / 4
  1. 01

    먼저 생각하기 · 기초

    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를 함께 사용한다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    움직임과 비교
  2. 02

    내 말로 설명하기 · 익힌 것을 써보기

    sq64 explain · Gold 64상태 discipline trace 감사실: discipline 4개, operation trace 4개, scale 4개의 64상태에서 removal order·endpoint·empty/full·wrap·cost를 비교하되 추상 모델을 언어별 runtime 보장으로 등치하지 않는다.이 필요한 이유와 64셀 trace matrix·boundary witnesses·source-level ledger·accept/revise/reject memo만으로 보장할 수 없는 concurrency·runtime 범위를 설명한다.

    상황

    stream scores [2,1,3,3,0,2]의 모든 길이 3 window maximum을 구한다. monotonic deque는 index를 저장하며 값은 front에서 back으로 non-increasing이고 equal score의 오래된 index를 유지한다.

    문제

    각 index 처리에서 expired front 제거, dominated back 제거, push, 현재 maximum을 설명하세요. 일반 FIFO queue나 stack만으로 같은 invariant를 직접 유지할 수 없는 이유와 strict back-pop tie policy의 결과를 함께 쓰세요.

    제공 자료
    • index i를 처리하기 전에 front≤i-3인 index를 window 밖으로 보고 popFront한다.
    • 그 뒤 deque back 값이 current value보다 작은 동안 popBack한다. equal value는 남긴다.
    • 현재 index를 pushBack하고 i≥2이면 deque front 값이 window maximum이다.
    • deque에는 아직 window 안에 있고 미래 maximum 후보가 될 수 있는 index만 남는다.
    • 각 index는 한 번 pushBack되고 front 또는 back에서 최대 한 번 제거된다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    설명 기준과 비교
  3. 03

    틀린 곳 고치기 · 익힌 것을 써보기

    sq64 debug · Gold 64상태 discipline trace 감사실: AI가 만든 구현에 “stack/FIFO/deque/bounded-ring 추상 상태를 Python·C++·Java·Rust의 직접 타입·동시성·성능 보장으로 복사한다.”를 주입하고 최초 잘못된 state transition만 수정한다.

    상황

    AI가 capacity N ring queue 초안을 제안했다. enqueue는 `buffer[tail]=x; tail=(tail+1)%N; if tail==head then head=(head+1)%N; return OK`, dequeue는 empty check 없이 `x=buffer[head]; head=(head+1)%N; return x`다. AI 설명은 lossless bounded FIFO와 자동 backpressure를 보장한다고 주장한다.

    문제

    초안의 FIFO·overflow·underflow·backpressure claim을 audit하고 최소 counterexample를 쓰세요. size를 둔 reject-on-full 수정 계약과 drop-oldest가 허용되는 별도 계약을 구분하고, 실패 시 state 보존 test를 제시하세요.

    제공 자료
    • 현재 요구는 accepted item을 drop하거나 overwrite하지 않는 lossless FIFO다.
    • capacity에 도달한 enqueue는 FULL_RETRY를 반환해 producer가 나중에 재시도하게 하며 queue state를 바꾸지 않아야 한다.
    • empty dequeue는 EMPTY를 반환하고 stale buffer value를 읽거나 index를 이동하지 않아야 한다.
    • head와 tail만 같을 때 empty인지 full인지 구분하려면 size, reserved slot 또는 별도 full flag가 필요하다.
    • drop-oldest는 유효한 telemetry policy가 될 수 있지만 dropped count와 loss 허용을 계약해야 하며 lossless backpressure와 같지 않다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    답과 설명 함께 비교
  4. 04

    새 문제에 써보기 · 새 문제

    sq64 transfer · Gold 64상태 discipline trace 감사실: 교차 언어 discipline shiproom·AI 생성 queue 설계 감사로 판단을 옮겨 보존할 discipline과 달라지는 failure·concurrency·cost 경계를 방어한다.

    상황

    offline device gateway의 한 partition이 accepted event를 FIFO로 전달한다. queue capacity는 1,000, high watermark 800, low watermark 500이다. accepted event는 drop·reorder할 수 없고 consumer ack 뒤에만 processed로 이동한다.

    문제

    AI 도구 없이 먼저 acceptance·conservation·failure tests와 초기 queue 정책을 쓰세요. 이후 AI가 제안한 unbounded queue와 drop-oldest ring을 audit하고, bounded FIFO·PAUSE/RESUME hysteresis·retry ownership·관측 지표를 포함한 review 설계를 제시하세요.

    제공 자료
    • conservation invariant는 `accepted = processed + queued`이며 retry 요청은 accepted가 아니다.
    • enqueue 성공 뒤 occupancy가 800 이상이면 PAUSE를 발행하고, paused 상태에서는 occupancy가 500 이하가 된 뒤에만 RESUME한다.
    • capacity 1,000에서 새 event는 FULL_RETRY를 반환하고 queue·accepted count를 바꾸지 않는다.
    • consumer는 FIFO front만 처리하며 ack 전 failure는 같은 front event를 retry할 수 있다. duplicate side effect 방지는 별도 idempotency contract가 필요하다.
    • unbounded queue는 memory bound를 만족하지 않고 drop-oldest는 lossless conservation을 깨므로 현재 기본 후보가 아니다.
    • 결과는 synthetic review evidence이며 실제 deployment throughput, 대회 성과, 자격·채용 결과를 보장하지 않는다.

    연습과 같은 문제를 다시 풀어 보는 시간이에요. 힌트 없이 먼저 생각해 보세요. 지금 적은 답은 바로 합격으로 기록되지 않아요.

    설명 기준과 비교

4개 답이 남았습니다.

02 · 나중에 한 번 더

모양이 다른 문제에서도 같은 생각을 써봐요

Gold 64상태 discipline trace 감사실의 미공개 operation stream에서 discipline·경계·비용·runtime claim을 독립 재구성하는 능력의 미공개 empty·singleton·full·wrap·duplicate·blocked-operation fixture에서 AI 없이 contract·trace·cost·source-level verdict를 작성하고 deterministic replay evidence를 제출한다.

검증 과제

AI가 제안한 Gold 64상태 discipline trace 감사실 분석에 wrong-end operation, underflow/overflow 누락, head-tail ambiguity, wrap error, stale monotonic candidate, mark-on-dequeue duplication, compound atomicity 또는 fairness 과장 중 하나 이상을 심어 독립 trace와 공식 근거로 찾아 수정한다.