728x90
명령의 수가 많을 경우 입출력하는데에 시간이 많이 들어서 시간초과가 될 수도 있으므로
cin.tie(NULL);
ios_base::sync_with_stdio(false);
이 코드를 써서 입출력 시간을 줄였다.
코드 구현은 스택이 비었을 경우 예외처리 하는 것 말고는 내가 따로 할 것은 없었고 C++의 <stack>을 이용했다.
#include <iostream>
#include <stack>
#include <vector>
#include <string>
using namespace std;
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
cin >> n;
stack<int> stack;
for (int i = 0; i < n; i++) {
string s;
cin >> s;
if (s == "push") {
int operand;
cin >> operand;
stack.push(operand);
}
else if (s == "top") {
if (!stack.empty())
cout << stack.top() << '\n';
else cout << -1 << '\n';
}
else if (s == "size") {
cout << stack.size() << '\n';
}
else if (s == "empty") {
cout << stack.empty() << '\n';
}
else if (s == "pop") {
if (!stack.empty()) {
cout << stack.top() << '\n';
stack.pop();
}
else cout << -1 << '\n';
}
}
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 1193번 분수찾기 (0) | 2020.01.31 |
---|---|
[백준] 2751번 수 정렬하기 2 (0) | 2020.01.31 |
[백준] 10814번 나이순 정렬 (0) | 2020.01.30 |
[백준] 1978번 소수 찾기 (0) | 2020.01.30 |
[백준] 4673번 셀프 넘버 (0) | 2020.01.30 |