[C] 백준 10828 스택

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

문제

정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 다섯 가지이다.

push X: 정수 X를 스택에 넣는 연산이다.
pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
size: 스택에 들어있는 정수의 개수를 출력한다.
empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

제출 10500 정답 비율 39%





코드

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

int main() {
	int n = 0, num = 0, push = 0;
	int stack[100]; //stack 배열
	char arr[100]; // 명령문 배열

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%s", &arr[i]);

		if (strcmp(arr[i], "push") == 0) {
			scanf("%d", &push);
			stack[num] = push;
			num++;
		}//push
		else if (srtcmp(arr[i], "pop") == 0) {
			if (num == 0)
				printf("-1");
			else {
				printf("%d", stack[num - 1]);
				num--;
			}
		}//pop
		else if (srtcmp(arr[i], "size") == 0) {
			printf("%d", num);
		}//size
		else if (srtcmp(arr[i], "empty") == 0) {
			if (num == 0)
				printf("1");
			else
				printf("0");
		}//empty
		else if (srtcmp(arr[i], "top") == 0) {
			if (num == 0)
				printf("-1");
			else {
				printf("%d", stack[num - 1]);
			}
		}//top
		else {
			printf("잘못된 입력");
		}
	}//for문 끝

	return 0;
}

좋은 웹페이지 즐겨찾기