스택은 무엇은가?
-한쪽 끝에서만 원소를 넣거나 뺄수있는 자료구조
스택의 성질은?
- 원소의 추가가 O(1)
- 원소의 제거가 O(1)
- 제일 상단의 원소 확인이 O(1)
- 제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능
스택의 용도는?
- 직전의 값을 저장(기억)
- 전체 값보다는 바로 직전값만 확인할때
- 거꾸로 출력하고 싶을때(함수 호출)
문제풀이에서 스택의 활용방식은?
- DFS
- 수식 괄호쌍
- 전위/중위/후위 표기법
STL
stack<int> s;
s.push(1); // 1
s.push(2); // 1 2
s.push(3); // 1 2 3
s.push(4); // 1 2 3 4
cout << s.size() << '\n'; // 4
if(s.empth()) cout << "s is empty" << '\n'; // false
s.pop(); // 1 2 3
cout << s.top() << '\n'; // 3