문제는 간단했다.
N개의 입력이 주어지면, 이를 스택 매소드로 변환하여 그 결과를 출력해주면 되었다.
구현은 금방 했는데 시간 초과가 났다.
아마도 std::cin, cout 때문인 것 같아 cstring 헤더를 포함시켜 scanf로 수정해주었다.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stack>
#include <string>
#include <vector>
#include <cstring>
#include <stdio.h>
int main() {
// 명령의 개수
int n;
scanf("%d", &n);
std::vector<int> answer;
std::stack<int> st;
for (int i = 0; i < n; i++) {
char tmp[10];
scanf("%s", tmp);
if (strcmp(tmp, "push") == 0) {
int x;
scanf("%d", &x);
st.push(x);
}
else if (strcmp(tmp,"pop") == 0) {
if (st.size() == 0) {
answer.push_back(-1);
}
else {
answer.push_back(st.top());
st.pop();
}
}
else if (strcmp(tmp, "size") == 0) {
answer.push_back(st.size());
}
else if (strcmp(tmp, "empty") == 0) {
if (st.empty()) {
answer.push_back(1);
}
else {
answer.push_back(0);
}
}
else if (strcmp(tmp, "top") == 0) {
if (st.empty()) {
answer.push_back(-1);
}
else {
answer.push_back(st.top());
}
}
}
std::vector<int>::iterator iter;
for (iter = answer.begin(); iter != answer.end(); iter++) {
std::cout << *iter << std::endl;
}
return 0;
}
'Computer Science > C++' 카테고리의 다른 글
백준 C++ | #18 BOJ11047 동전 0 C++ 문제 풀이 (0) | 2022.08.18 |
---|---|
백준 C++ | #17 BOJ5585 거스름돈 C++ 문제 풀이 (0) | 2022.08.16 |
백준 C++ | #15 BOJ9012 괄호 C++ 문제 풀이 (0) | 2022.08.15 |
백준 C++ | #14 BOJ1927 최소 힙 C++ 문제 풀이 (0) | 2022.08.14 |
백준 C++ | #13 BOJ1436 영화감독 숌 C++ 문제 풀이 (0) | 2022.08.12 |