Study hard
(c++)백준 10828번: 스택 본문
https://www.acmicpc.net/problem/10828
[풀이]
C++ STL의 stack을 사용하여 풀 수 있다.
순서대로 명령을 입력받자마자 그 명령에 해당하는 일을 처리한다.
#include <iostream>
#include <stack>
#include <string>
using namespace std;
void solution() {
stack<int>s;
int N, pushNum;
string str;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> str;
if (str == "push") {
//pushNum을 스택에 넣기
cin >> pushNum;
s.push(pushNum);
}
else if (str == "pop") {
//스택에 들어있는 정수가 없는 경우 -1 출력
if (s.empty()) {
cout << -1 << endl;
continue;
}
//스택 가장 위에 있는 정수 빼고, 그 수 출력
int Top = s.top();
cout << Top << endl;
s.pop();
}
else if (str == "size") {
//스택에 들어있는 정수의 개수 출력
cout << s.size() << endl;
}
else if (str == "empty") {
//스택이 비어있으면 1, 아니면 0 출력
if (s.empty())
cout << 1 << endl;
else
cout << 0 << endl;
}
else if (str == "top") {
//스택에 들어있는 정수가 없는 경우 -1 출력
if (s.empty()) {
cout << -1 << endl;
continue;
}
//스택의 가장 위에 있는 정수 출력
cout << s.top() << endl;
}
}
}
int main() {
solution();
return 0;
}
'백준 > 여러가지 문제들' 카테고리의 다른 글
(c++)백준 10799번: 쇠막대기 (0) | 2020.06.12 |
---|---|
(c++)백준 9012번: 괄호 (0) | 2020.06.12 |
(c++)백준 11004번: K번째 수 (0) | 2020.06.11 |
(c++)백준 11652번: 카드 (0) | 2020.06.11 |
(c++)백준 10989번: 수 정렬하기 3 (0) | 2020.06.11 |