컴퓨터는 자료를 효율적으로 처리하기 위해 여러 방식으로 저장하고 사용한다 ex)스택, 큐 그래프, 트리 등
스택: 먼저 들어온것이 나중에 나오는 자료구조
<상황으로 이해하기>
우리가 a라는 일을 하고 있다
이 일을 마치기 전에 b라는 일을 해달라고 연락이 왔다
b를 마치기 전에 c라는 일을 해달라고 연락이 왔다
c를 마치기 전에 d라는 일을 해달라고 연락이 왔다
d를 끝냈다. 어떤 일을 해야할까?
LIFO(Last In First Out)이라고 부른다
스택은 컵모양으로 설명한다
컵모양으로 위 예시를 설명하면, 위에서부터 d, c, b, a가 된다
용어 정리
push: 스택에 값을 넣는 것
pop: 스택의 가장 위의 값을 제거
top: 스택 가장 위에 있는 값

예제 - 인터넷 브라우저
인터넷 브라우저의 뒤로 가기, 앞으로 가기 기능은 스택을 이용해서 구현할 수 있다
스택은 두 개를 사용한다. 뒤로 가기에 사용하는 스택과 앞으로 가기에 사용하는 스택이다
뒤로 가기에 사용하는 스택을 prev 스택, 앞으로 가기에 사용하는 스택을 next 스택이라고 하자

새로운 페이지 접속: 방금 전 페이지를 prev스택에 넣고 next 스택을 비운다
뒤로 가기: 방금 전 페이지를 next 스택에 넣는다 → prev 스택의 top 페이지로 이동 → prev 스택의 값 pop
앞으로 가기: 방금 전 페이지를 prev 스택에 넣는다 → next 스택의 top 페이지로 이동 → next 스택의 값 pop
예시 문제

결과
