stack 만들어보기
- 다른 정답 코드와 비교했을 때 실행시간이 현저히 느린데 아직 이유를 모르겠음.
코드
#include <iostream>
#include <string>
// 함수나 클래스를 만들어아햐나..
class Stack {
int cnt;
int arr[10001];
public:
Stack() : cnt{0} {}
//push
void push(int num) {
cnt++;
arr[cnt] = num;
}
//top
void top() {
if (cnt > 0) {
std::cout << arr[cnt] << '\n';
} else {
std::cout << -1 << '\n';
}
}
//pop
void pop() {
if (cnt == 0) std::cout << -1 << '\n';
else {
std::cout<< arr[cnt] << '\n';
cnt--;
}
}
//size
void size() {
std::cout << cnt << '\n';
}
//empty
void empty() {
if (cnt == 0) std::cout << 1 << '\n';
else std::cout << 0 << '\n';
}
};
int main() {
int N;
std::cin >> N;
int num;
std::string order;
Stack stack;
for (int i=0; i<N; i++) {
std::cin >> order;
// push 일 떄
if (order == "push") {
std::cin >> num;
stack.push(num);
}
// pop 일 때
else if (order == "pop") {
stack.pop();
}
// top 일 때
else if (order == "top") {
stack.top();
}
// size 일 때
else if (order == "size") {
stack.size();
}
// empty 일 때
else if (order == "empty") {
stack.empty();
}
}
return 0;
}