본문 바로가기
Problem Solving/백준

[백준] 10828번 : 스택

by shinbian11 2020. 2. 24.

출처 : https://www.acmicpc.net/problem/10828

 

10828번: 스택

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

www.acmicpc.net

#include <stdio.h>
#include <string.h>

int n = 0;
int StackArr[10001] = { 0, };
void push();
void pop();
void size();
void empty();
void top();

int main()
{
	int testcase;
	char command[11];
	scanf("%d", &testcase);
	for (int i = 0; i < testcase; i++)
	{
		scanf("%s", &command);
		
		if (strcmp(command, "push")==0)
		{
			push();
		}
		else if (strcmp(command, "pop") == 0) {

			pop();
		}
		else if (strcmp(command, "size") == 0) {
			size();
		}

		else if (strcmp(command, "empty") == 0) {
			empty();
		}

		else if (strcmp(command, "top") == 0) {
			top();
		}
	}
}

void push()
{
	scanf("%d", &StackArr[n++]);
}
void pop()
{
	if (n)
		printf("%d\n", StackArr[--n]);
	else
		printf("-1\n");
}
void size()
{
	printf("%d\n", n);
}
void empty()
{
	if (n)
		printf("0\n");
	else
		printf("1\n");
}
void top()
{
	if (n)
		printf("%d\n", StackArr[n-1]);
	else
		printf("-1\n");
}

각각의 함수를 만들어서 사용했습니다.

'Problem Solving > 백준' 카테고리의 다른 글

[백준] 2523번: 별 찍기 - 13  (0) 2020.03.15
[백준] 1436번 : 영화감독 숌  (0) 2020.02.29
[백준] 1932번 : 정수 삼각형  (0) 2020.02.25
[백준] 2751번 : 수 정렬하기 2  (0) 2020.02.24
[백준] 10773번 : 제로  (0) 2020.02.24