[문제]
https://www.acmicpc.net/problem/10828
[풀이]
기본적인 스택 풀이 문제이다.
C++ STL 중 하나인 스택의 개념과 사용법을 알아보자.
1. 스택
스택(Stack)은 대표적인 LIFO(Last In First Out) 구조이다.
즉, 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 구조를 말한다.
C++ STL 사용법
> 스택 선언
stack <데이터 타입> 이름으로 스택 선언하기
stack<int> stack;
> 스택에 데이터 추가
stack.push(element)
> 스택 데이터 삭제
스택의 최상위 데이터를 삭제합니다.
stack.pop()
> 스택 최상위 데이터(탑, top) 반환
stack.top()
> 스택 사이즈 반환
stack.size()
> 스택 비어있는지 확인
stack.empty()
> 스택 SWAP: 두 스택의 내용 바꾸기
swap 함수를 이용해 두 스택의 내용을 변경합니다.
swap(stack1 , stack2)
[코드]
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
stack<int> S;
while(n--) {
string s;
cin >> s;
if(s == "push") {
int num;
cin >> num;
S.push(num);
}
else if(s == "pop") {
if(S.empty()) cout << -1 << "\n";
else {
cout << S.top() << "\n";
S.pop();
}
}
else if(s == "size"){
cout << S.size() << "\n";
}
else if(s == "empty"){
cout << S.empty() << "\n";
}
else if(s == "top"){
if(S.empty()) cout << -1 << "\n";
else {
cout << S.top() << "\n";
}
}
}
}
'✏️ Algorithm > 알고리즘 풀이' 카테고리의 다른 글
3015번 오아시스 재결합 - C++ (0) | 2022.07.24 |
---|---|
10773번 제로 - C++ (0) | 2022.07.16 |
백준 2493번 - 탑 C++ (0) | 2022.04.23 |
백준 10807번 - 개수 세기 C++ (0) | 2022.04.16 |
백준 3273번 - 두 수의 합 C++ (0) | 2022.04.16 |