이클립스로 돌리니까 이상이없는것 같은데.. 왜틀렸는지 모르겠네요...
#include<stdio.h>
#include<string.h>
char push[] ="push";char pop[]="pop";char size[]="size";char empty[]="empty";char top[]="top";int stack[10001]={0};int main(){ int pointer=-1; int count=0; char comd[6]={0}; int data=0; scanf("%d",&count); while(count>0){ scanf("%s",comd); if(!strcmp(comd,push)){ scanf("%d",&data); stack[++pointer]=data; } if(!strcmp(comd,pop)){ if(pointer>-1){ printf("%d\n",stack[pointer--]); }else printf("-1\n"); } if(!strcmp(comd,size)){ printf("%d\n",pointer+1); } if(!strcmp(comd,empty)){ if(pointer<0)printf("1\n"); else printf("0\n"); } if(!strcmp(comd,top)){ if(pointer>-1)printf("%d\n",stack[pointer]); else printf("-1\n"); } count--; } return 0;}
테스트 해보니까 잘되던데요~
C로 제출하니깐 맞다고 나오네요!
댓글을 작성하려면 로그인해야 합니다.
rnrjsah789 6년 전
이클립스로 돌리니까 이상이없는것 같은데.. 왜틀렸는지 모르겠네요...
#include<stdio.h>
#include<string.h>
char push[] ="push";
char pop[]="pop";
char size[]="size";
char empty[]="empty";
char top[]="top";
int stack[10001]={0};
int main(){
int pointer=-1;
int count=0;
char comd[6]={0};
int data=0;
scanf("%d",&count);
while(count>0){
scanf("%s",comd);
if(!strcmp(comd,push)){
scanf("%d",&data);
stack[++pointer]=data;
}
if(!strcmp(comd,pop)){
if(pointer>-1){
printf("%d\n",stack[pointer--]);
}else printf("-1\n");
}
if(!strcmp(comd,size)){
printf("%d\n",pointer+1);
}
if(!strcmp(comd,empty)){
if(pointer<0)printf("1\n");
else printf("0\n");
}
if(!strcmp(comd,top)){
if(pointer>-1)printf("%d\n",stack[pointer]);
else printf("-1\n");
}
count--;
}
return 0;
}