https://www.acmicpc.net/problem/10828
6달 전에 짠 코드는 4ms가 나왔는데 똑같은 코드로 이틀 전에 제출했더니 0ms가 나왔다. ㅋㅋㅋ 재미있네
이런 문제는 사실 N의 제한이 있기 때문에 굳이 링크드 리스트로 구현할 필요는 없다.
그리고 문자열을 다 볼 필요 없이 앞 1~2자리만 봐도 어떤 입력인지 알 수 있다.
#include <stdio.h>
#include <string.h>
#define MAX 10001
typedef struct stack
{
int Stack[MAX];
int size;
int empty;
int top;
} stack;
stack Stk;
int main()
{
Stk.empty = 1, Stk.size = 0;
int N;
scanf("%d", &N);
for (int i = 1; i <= N; ++i)
{
char str[10];
scanf("%s", str);
switch (str[0])
{
case 'p':
if (str[1] == 'u')
{
int input;
scanf("%d", &input);
Stk.Stack[Stk.size] = input;
Stk.top = input;
Stk.empty = 0;
Stk.size++;
}
else
{
if (Stk.size != 0)
{
int top = Stk.Stack[Stk.size - 1];
Stk.Stack[Stk.size - 1] = 0;
Stk.size--;
Stk.top = Stk.Stack[Stk.size - 1];
printf("%d\n", top);
break;
}
else
{
Stk.empty = 1;
printf("%d\n", -1);
break;
}
}
break;
case 't':
printf("%d\n", (Stk.size <= 0) ? -1 : Stk.top);
break;
case 's':
printf("%d\n", Stk.size);
break;
case 'e':
printf("%d\n", Stk.size <= 0 ? 1 : 0);
break;
}
}
return 0;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 10799번: 쇠막대기 (0) | 2018.07.26 |
---|---|
[BOJ] 9012번: 괄호 (0) | 2018.07.26 |
[BOJ] 10845번: 큐 (0) | 2018.07.26 |
[BOJ] 1158번: 조세퍼스 문제 (0) | 2018.07.26 |
[BOJ] 1157번: 단어 공부 (0) | 2018.07.26 |
[BOJ] 15904번: UCPC는 무엇의 약자일까? (0) | 2018.07.26 |
댓글