1. 문제 해결 전략
스택을 쓰면된다..
#include <iostream>
#include <stack>
#include <string.h>
std::stack<int> s;
int n = 10001;
void function(std::string str, int value)
{
if (str == ("push"))
{
s.push(value);
return;
}
else if (str == ("pop"))
{
if (s.empty())
{
std::cout << -1 << std::endl;
return;
}
std::cout << s.top() << std::endl;
s.pop();
return;
}
else if (str == ("top"))
{
if (s.empty())
{
std::cout << -1 << std::endl;
return;
}
std::cout << s.top() << std::endl;
return;
}
else if (str == ("size"))
{
std::cout << s.size() << std::endl;
return;
}
else if (str == ("empty"))
{
if (s.empty())
{
std::cout << 1 << std::endl;
return;
}
else
std::cout << 0 << std::endl;
return;
}
}
int main()
{
std::cin >> n;
std::string str;
int val = 0;
for (int i = 0; i < n; i++)
{
char pdata[128] = { 0, };
std::cin >> pdata;
str = pdata;
if (str == "push")
{
std::cin >> val;
}
function(pdata, val);
}
}
스택을 쓰면 아무것도 아니다..
2. 걸린 시간
30분
3. 느낀점
스택을 구현하고 앉아 있었다.. 그냥 스택을 쓰자. 그리고 입력을 여러번 넣고 출력을 여러번해야하는 경우에
자료구조를 만들어서 미리 넣어둔 후 한꺼번에 출력해야하는줄 알았는데, 이번에 입력하나에 출력하나씩 해보니
아무 문제없이 돌아갔다. 이것때문에 몇번 고생했었는데 그냥 바로바로 입출력을 해야겠다.
4. 링크
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[x] 10824 : 네 수 (0) | 2020.04.30 |
---|---|
[스택] 9012. 괄호 (0) | 2020.04.28 |
[정렬] 11652. 카드 (0) | 2020.04.21 |
[정렬] 10825. 국영수 (0) | 2020.02.18 |
[정렬] 10814. 나이순 정렬 (0) | 2020.02.18 |