We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
An easy stack problem, graded against 7 test cases (4 of them hidden).
Last-in-first-out processing - matching, nesting, and deferred evaluation.
Reach for it when you see: Balanced brackets, nested structures, undo/back semantics, or expression evaluation.
More Stackproblems →Use a queue for students and an index for the top of the sandwich stack. If the front student matches the top sandwich, both advance; otherwise the student rotates to the back. Stop when a full rotation happens with no sandwich taken - the remaining queue length is the answer.
Solution 2: Counting (no simulation)
Order in the queue never matters for *whether* a sandwich gets taken - only the counts of students preferring 0 and 1 do. Walk the stack top-down, decrementing the matching preference count; the first sandwich with a zero count blocks all remaining students.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.