<< 문제 >>
https://www.acmicpc.net/problem/28278
입력 그대로 구현해주시면 됩니다.
저는 struct로 대충 stack 구현하고 문제에서 요구하는 동작을 따로 함수를 만들어서 해결했습니다.
<< 코드 >>
#include <iostream>
using namespace std;
struct myStack {
int itemNum = -1;
int item[1000000];
};
int stackAction(myStack &s1, int input) {
int result = -2;
switch (input) {
case 1:
int temp;
cin >> temp;
s1.itemNum++;
s1.item[s1.itemNum] = temp;
break;
case 2:
if (s1.itemNum == -1) {
result = -1;
} else {
result = s1.item[s1.itemNum];
s1.itemNum--;
}
break;
case 3:
result = s1.itemNum + 1;
break;
case 4:
if (s1.itemNum == -1) {
result = 1;
} else {
result = 0;
}
break;
case 5:
if (s1.itemNum == -1) {
result = -1;
} else {
result = s1.item[s1.itemNum];
}
break;
}
return result;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
myStack s1;
int num;
cin >> num;
int input;
int result;
for (int i = 0; i < num; i++) {
cin >> input;
result = stackAction(s1, input);
if (result != -2) {
cout << result << '\n';
}
}
}
< 백준 BaekJoon : 9012번 괄호> C++ (0) | 2024.01.22 |
---|---|
< 백준 BaekJoon : 10773번 제로> C++ (0) | 2024.01.22 |
< 백준 BaekJoon : 13909번 창문 닫기> C++ (0) | 2024.01.22 |
< 백준 BaekJoon : 4134번 다음 소수> C++ (0) | 2024.01.15 |
< 백준 BaekJoon : 2485번 가로수> C++ (0) | 2024.01.14 |
댓글 영역