문제
예제 입출력
코드
#include <iostream>
#include <stack>
using namespace std;
stack<int> myStack;
void solution(int n) {
switch (n) {
case 1:
int num;
scanf("%d", &num);
myStack.push(num);
break;
case 2:
if (!myStack.empty()) {
printf("%d\n", myStack.top());
myStack.pop();
}
else {
printf("-1\n");
}
break;
case 3:
printf("%d\n", myStack.size());
break;
case 4:
if (!myStack.empty()) {
printf("0\n");
}
else {
printf("1\n");
}
break;
case 5:
if (!myStack.empty()) {
printf("%d\n", myStack.top());
}
else {
printf("-1\n");
}
break;
default:
break;
}
}
int main() {
int N;
int order;
scanf("%d", &N);
while (N--) {
scanf("%d", &order);
solution(order);
}
return 0;
}
스택을 이용한 기초적인 문제였다.
https://dongyeop00.tistory.com/105
stl에서 제공해주는 헤더파일을 써서 간단하게 풀었다.
'📖Algorithm > Stack' 카테고리의 다른 글
자바 [Programmers] 2단계 - 괄호 회전하기 (0) | 2024.12.06 |
---|---|
자바 [Programmers] 2단계 - 짝지어 제거하기 (0) | 2024.12.03 |
C++ [Algorithm] - 백준 10773 제로 (0) | 2024.07.29 |