식당의 접시 더미
깨끗한 접시를 위에 올리고 손님은 가장 위의 접시부터 가져갑니다.
자료구조와 연결하면마지막에 올린 접시가 가장 먼저 나오는 LIFO 순서입니다.
가장 나중에 들어온 일을 가장 먼저 처리하는 LIFO 구조
중첩된 작업을 되돌아가거나 최근 상태부터 복구해야 할 때 필요합니다. 함수 호출, 괄호 짝, 실행 취소처럼 ‘마지막에 시작한 것이 먼저 끝나는’ 문제의 모양과 정확히 맞습니다.
코드를 생각하지 말고, 아래 상황이 어떤 순서로 움직이는지만 따라가 보세요.
깨끗한 접시를 위에 올리고 손님은 가장 위의 접시부터 가져갑니다.
글을 세 번 고친 뒤 실행 취소를 누르면 세 번째 수정부터 두 번째, 첫 번째 순서로 돌아갑니다.
코딩 테스트의 장난감 예제를 넘어, 실제 시스템에서 같은 원리가 어디에 숨어 있는지 연결해 보세요.
방문 기록의 최신 페이지부터 되돌립니다.
사용자의 최근 편집 명령을 역순으로 취소합니다.
열린 괄호와 함수 호출 프레임을 쌓고 완료 시 꺼냅니다.
최근에 연 화면부터 닫아 이전 화면으로 돌아갑니다.
여러 변경 중 실패하면 가장 최근 변경부터 역순으로 되돌립니다.
한쪽 끝(top)에서만 넣고 빼는 구조입니다. 파이썬에서는 리스트의 append()와 pop()으로 구현하면 두 연산 모두 평균 O(1)입니다.
| 연산 | Python 표현 | 시간 |
|---|---|---|
| 넣기 | stack.append(x) | 평균 O(1) |
| 빼기 | stack.pop() | O(1) |
| 맨 위 확인 | stack[-1] | O(1) |
| 포함 확인 | x in stack | O(n) |
stack = ['(']stack = ['(', '[']'['를 pop → stack = ['(']'('를 pop → stack = []; 유효pop(0)하면 스택이 아니라 느린 큐가 됩니다.설명을 닫고 먼저 풀어본 뒤, 막히는 지점에서 어떤 연산이 필요한지 다시 떠올려 보세요.
Easy 연습 1 / 7
Python으로 풀기Easy 연습 2 / 7
Python으로 풀기Easy 연습 3 / 7
Python으로 풀기Easy 연습 4 / 7
Python으로 풀기Easy 연습 5 / 7
Python으로 풀기Easy 연습 6 / 7
Python으로 풀기Easy 연습 7 / 7
Python으로 풀기Medium 연습 1 / 3
Python으로 풀기Medium 연습 2 / 3
Python으로 풀기Medium 연습 3 / 3
Python으로 풀기