기록
[백준/C] 10828번 스택 본문
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define MAX_STACK_SIZE 100001
typedef struct element {
int key;
}element;
int top = -1;
element stack[MAX_STACK_SIZE];
void push(element item) {
stack[++top]= item;
}
element pop(void) {
if (top == -1) printf("-1\n");
else {
printf("%d\n", stack[top--].key);
return stack[top];
}
}
void empty(void) {
if (top == -1) printf("1\n");
else printf("0\n");
}
void topPrint(void) {
if (top == -1) printf("-1\n");
else printf("%d\n", stack[top].key);
}
void size(void) {
printf("%d\n", top + 1);
}
int main(void)
{
int n, pushNum; // 명령어 개수, push 할 숫자
element item; // push 할 element
int i; // 반복 개수
char order[10];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%s", order);
if (!strcmp("push", order)){
scanf("%d", &pushNum);
item.key = pushNum;
push(item);
}
if (!strcmp("pop", order)){
pop();
}
if (!strcmp("empty", order)){
empty();
}
if (!strcmp("top", order)){
topPrint();
}
if (!strcmp("size", order)){
size();
}
}
return 0;
}
'잡동사니 > [2022] 회로이론' 카테고리의 다른 글
[백준/C] 5597번 과제 안 내신 분..? (0) | 2022.12.11 |
---|---|
[백준/C] 10807번 개수 세기 (0) | 2022.12.11 |
[백준/C] 25501번 재귀의 귀재 (0) | 2022.12.11 |
[백준/C] 3273번 두 수의 합 (더블포인터) (0) | 2022.12.11 |
[백준/C] 11659번 구간 합 구하기 4 - 슬라이딩 윈도우 알고리즘 (0) | 2022.12.11 |