정신과 시간의 방
작성일
2024. 7. 16. 16:23
작성자
risehyun
  • 문제

 

  • 풀이
#include <iostream>
#include <stack>

using namespace std;

int main() 
{
	int n = 0;

	cin >> n;

	stack<int> st;
	string str;

	for (int i = 0; i < n; i++)
	{
		cin >> str;

		if (str == "push")
		{
			int input = 0;

			cin >> input;

			st.push(input);
		}
		else if (str == "pop")
		{
			if (false == st.empty())
			{
				cout << st.top() << '\n';
				st.pop();
			}
			else
			{
				cout << "-1" << '\n';
			}
		}
		else if (str == "size")
		{
			cout << st.size() << '\n';
		}
		else if (str == "empty")
		{
			if (true == st.empty())
			{
				cout << "1" << '\n';
			}
			else
			{
				cout << "0" << '\n';
			}
		}
		else if (str == "top")
		{
			if (false == st.empty())
			{
				cout << st.top() << '\n';
			}
			else
			{
				cout << "-1" << '\n';
			}
		}
	}

	return 0;
}

 

 

  • 메모

front, pop 함수를 실행하기 전에 empty 함수로 스택 내부가 비어있는지 확인하는 것을 주의해야 한다.