10828번: 스택 (acmicpc.net)

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

#include <bits/stdc++.h>
using namespace std;
//X정우 학생 
int main() {
   string cmd;
   int cnt, stack[10000] = {0,}, push;
   cin >> cnt;
   for (int i=0; i<cnt; i++) {
      cin >> cmd;
      if (cmd == "push") {
         cin >> push;
         for (int j=0; j<10000; j++) {
            if (stack[j] == 0) {
               stack[j] = push;
               break;
            }
         }
      }
      else if (cmd == "pop") {
         if (stack[0] == 0) {
            printf("-1\n");
         }
         else {
            for (int j=0; j<10000; j++) {
               if (stack[j] == 0) {
                  printf("%d\n", stack[j-1]);
                  stack[j-1] = 0;
                  break;
               }
            }
         }
      }
      else if (cmd == "size") {
         int cnt = 0;
         for (int j=0; j<10000; j++) {
            if (stack[j] != 0) {
               cnt++;
            }
            else {
               break;
            }
         }
         printf("%d\n", cnt);
      }
      else if (cmd == "empty") {
         if (stack[0] == 0) {
            printf("1\n");
         }
         else {
            printf("0\n");
         }
      }
      else if (cmd == "top") {
         if (stack[0] == 0) {
            printf("-1\n");
         }
         else {
            for (int j=0; j<10000; j++) {
               if (stack[j] == 0) {
                  printf("%d\n", stack[j-1]);
                  break;
               }
            }
         }
      }
   }
   
   return 0;
}

'정보올림피아드-KOI > BOJ' 카테고리의 다른 글

백준 소수 구하기 1929  (0) 2022.03.07
백준 토마토  (0) 2022.03.07
단어 뒤집기 2  (0) 2021.12.31
백준 : 가운데를 말해요 1655번  (0) 2020.05.10
BOJ 외판원 순회 2 - 10971번  (0) 2020.05.08

+ Recent posts