[백준] 10828 스택 C++

윤경·2021년 7월 21일
0

Baekjoon

목록 보기
56/64

문제

코드

#include <iostream>
#include <stack>
#include <string>
using namespace std;

// 스택

int main() {
  ios::sync_with_stdio(0);

  int N;
  cin >> N;

  stack<int> st;
  int n;
  for(int i=0; i<N; i++) {
    string str;

    cin >> str;

    if(str[0] == 'p' && str[1] == 'u') {
      cin >> n;
      st.push(n);
    } else if(str[0] == 'p' && str[1] == 'o') {
      if(!st.empty()) {
        cout << st.top() << '\n';
        st.pop();
      } else { cout << "-1" << '\n'; }
    } else if(str[0] == 's') {
      cout << st.size() << '\n';
    } else if(str[0] == 'e') {
      if(st.empty()) { cout << '1' << '\n'; }
      else { cout << '0' << '\n'; }
    } else if(str[0] == 't') {
      if(!st.empty()) { cout << st.top() << '\n'; }
      else { cout << "-1" << '\n'; }
    }
  }

  return 0;
}

📢

단순히 입력을 string으로 받고 pop / push / top / size / empty를 구분하여 숫자를 입력받아야 하는 push에만 따로 cin >> n 으로 수를 입력받음

나머지는 그냥 stack 기능을 사용하여 맞게 출력시켜 준 것

굉장히 쉬운 문제였고 어려운 문제 풀다 지쳐서 풀었음

profile
개발 바보 이사 중

0개의 댓글