라이브러리를 사용한 코드
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
int n, value;
string oper;
stack<int> stk;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> oper;
if (oper == "push") {
cin >> value;
stk.push(value);
}
else if (oper == "pop") {
if (true == stk.empty()) {
cout << -1 << endl;
}
else {
cout << stk.top() << endl;
stk.pop();
}
}
else if (oper == "top") {
if (true == stk.empty()) {
cout << -1 << endl;
}
else {
cout << stk.top() << endl;
}
}
else if (oper == "size") {
cout << stk.size() << endl;
}
else if (oper == "empty") {
if (true == stk.empty()) {
cout << 1 << endl;
}
else cout << 0 << endl;
}
}
return 0;
}
런타임 에러 때문에 시간을 많이 잡아먹었는데, 예외 처리를 해주지 않아 생겼던 에러였었다. 테스트 케이스도 제대로 작성해보지 않았었는데, 유의해서 문제 푸는 습관을 들여야겠다.
'역시 내 문제해결 알고리즘은 잘못됐다 > 자료구조' 카테고리의 다른 글
백준 1158번, 11866번 요세푸스 문제 [C/C++] (0) | 2021.01.23 |
---|---|
백준 2164번 카드2 [C/C++] (0) | 2021.01.19 |
백준 1966번 프린터 큐 [C/C++] (1) | 2021.01.19 |