본문/내용
1. 스택의 개념
스택은 자료의 순서가 후입선출(Last In First Out, LIFO)인 선형 자료구조이다. 즉, 나중에 삽입된 데이터가 먼저 삭제되는 구조로, 하나의 끝에서만 데이터의 삽입과 삭제가 이루어진다. 이 구조는 일상생활에서도 쉽게 찾을 수 있는데, 예를 들어 책 더미, 접시 쌓기, 접시 쌓기, 아니면 서랍속 서류 더미 등이 모두 스택의 개념을 띈다. 컴퓨터 내에서는 함수 호출 스택, 내장 함수 호출시 사용하는 스택이 대표적이다. 함수 호출 시마다 현재 작업 위치와 변수값들을 저장하는데, 함수가 종료되면 최근에 저장된 위치부터 차례로 반환된다. 이때 호출 스택은 후입선출 원칙에 따라 작동한다.
스택의 삽입 연산은 `푸시(push)`라고 부르며, 맨 위에 새로운 데이터를 저장하는 방식으로 수행된다. 구체적으로, 스택이 비어있지 않은 경우에는 새 데이터를 현재 맨 위에 위치시키고, 비어있을 경우에는 맨 위 위치에 저장한다. 삭제 연산은 `팝(pop)`이라고 하며, 맨 위에 위치한 데이터를 제거하는 방식이다. 이때, 스택이 비어있다면 삭제 연산은 수행하지 않는다. 또한, 스택은 조회(탐색)가 제한적이기 때문에, 맨 위 데이터를 제외한 내부 데이터…