스택 이라는건 기본적으로 Last In First Out 을 만족하기만 한다면 그것을 스택 구조라고 한다.
백준 10828 번 문제는 이 스택을 간단하게 구현하라는 문제였다.
- push X: 정수 X를 스택에 넣는 연산이다.
- pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- size: 스택에 들어있는 정수의 개수를 출력한다.
- empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
- top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
#include <stdio.h> int count = 0; unsigned int stack[10000]; char temp[6]; int main() { int N,a; int selecter; // 0 push 1 pop 2 top 3 size 4 empty scanf("%d", &N); for (a = 0; a < N; a++) { scanf("%s", temp); selecter = temp[0] + temp[1]; switch (selecter) { case 229 : // push scanf("%d", &stack[count++]); break; case 223 : if(count == 0) printf("-1\n"); else { printf("%d\n", stack[count - 1]); count--; } break; case 220 : printf("%d\n", count); break; case 210 : if (count == 0) printf("1\n"); else printf("0\n"); break; case 227 : if (count == 0) printf("-1\n"); else { printf("%d\n", stack[count - 1]); } break; } } return 0; } |
'Programing > C++ Algorithm' 카테고리의 다른 글
이진 탐색 ( Binary Search ) (0) | 2016.07.03 |
---|---|
Map ( 맵 ) 사용법 / STL (0) | 2016.06.29 |
Vector 사용법 / STL (0) | 2016.06.28 |
탑 / 백준 2493 / 스택 (1) | 2016.06.22 |
큐 구현 / 백준 10845 / Queue (1) | 2016.06.22 |