[C++] 백준 10828: 스택

Cyan·2024년 1월 27일
0

코딩 테스트

목록 보기
33/166

백준 10828: 스택

문제 요약

정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

문제 분류

  • 구현
  • 자료 구조
  • 스택

문제 풀이

스택의 처리 과정을 담은 문제다. 명령을 처리하는 과정과 스택만 제대로 구현한다면 어렵지 않다.

C++의 STL을 이용하면 굉장히 쉽게 풀 수 있다.

풀이 코드

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>

using namespace std;

int main()
{
	stack<int> s;
	int t;

	string in1;
	int in2;
	cin >> t;
	while (t--) {
		cin >> in1;
		if (in1 == "push") {
			cin >> in2;
			s.push(in2);
		}
		else if (in1 == "pop") {
			if (s.empty()) cout << -1 << endl;
			else {
				cout << s.top() << endl;
				s.pop();
			}
		}
		else if (in1 == "size")
			cout << s.size() << endl;
		else if (in1 == "empty")
			cout << s.empty() << endl;
		else if (in1 == "top") {
			if (s.empty())
				cout << -1 << endl;
			else
				cout << s.top() << endl;
		}
	}

	return 0;
}

0개의 댓글