백준저지 10828번 스택 문제 풀이입니다.
https://www.acmicpc.net/problem/10828
배열을 넉넉하게 잡아서 메모리를 할당하고, 간단하게 구현할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int arr[10001];
int size;
inline void push(int a) {
arr[size++] = a;
}
inline int pop() {
return size > 0 ? arr[--size] : -1;
}
inline int top() {
return size > 0 ? arr[size-1] : -1;
}
inline int empty() {
return size>0 ? 0 : 1;
}
inline int sz() {
return size;
}
int main() {
int n;
cin >> n;
while(n--) {
string cmd;
cin >> cmd;
if (cmd == "push") {
int tmp;
cin >> tmp;
push(tmp);
} else if (cmd == "pop") {
cout << pop() << '\n';
} else if (cmd == "size") {
cout << sz() << '\n';
} else if (cmd == "empty") {
cout << empty() << '\n';
} else if (cmd == "top") {
cout << top() << '\n';
}
}
return 0;
}
'알고리즘 & Problem Solving' 카테고리의 다른 글
백준 16235번 나무 재테크 문제 풀이 (2) | 2018.10.22 |
---|---|
백준 10090번 문제 Counting Inversions 문제 풀이 (0) | 2018.10.18 |
백준 14891번 톱니바퀴 문제 풀이 (0) | 2018.04.22 |
백준 14890번 경사로 풀이 (0) | 2018.04.22 |
백준 14889번 스타트와 링크 문제 풀이 (0) | 2018.04.22 |