티스토리 뷰
반응형
#include <stdio.h>
#include <string.h>
void push(int stack[], int number)
{
int i = 0;
if (stack[0] == 0)
{
stack[0] = number;
}
else
{
for(i = 9999; i >= 0; i--)
{
if(stack[i] != 0)
{
stack[i + 1] = stack[i];
}
}
stack[0] = number;
}
}
int pop(int stack[])
{
int i = 0;
int head = 0;
if(stack[i] <= 0)
{
return -1;
}
else
{
head = stack[0];
for (i = 1; i < 10000; i++)
{
if (stack[i] > 0)
{
stack[i - 1] = stack[i];
}
else
{
stack[i - 1] = 0;
break;
}
}
}
return head;
}
int size(int stack[])
{
int i = 0;
for (i = 0; i < 10000; i++)
if (stack[i] <= 0)
break;
return i;
}
int empty(int stack[])
{
if(stack[0] > 0)
return 0;
else
return 1;
}
int top(int stack[])
{
if (stack[0] > 0)
return stack[0];
else
return -1;
}
int main()
{
int stack[10000] = {0, };
int input_cnt = 0;
int i = 0;
char command[6] = "";
int number = 0;
scanf("%d", &input_cnt);
for (i = 0; i < input_cnt; i++)
{
scanf("%s", &command);
if (!strcmp(command, "push"))
{
scanf("%d", &number);
push(stack, number);
}
else if (!strcmp(command, "pop"))
{
printf("%d\n", pop(stack));
}
if (!strcmp(command, "size"))
{
printf("%d\n", size(stack));
}
if (!strcmp(command, "empty"))
{
printf("%d\n", empty(stack));
}
if (!strcmp(command, "top"))
{
printf("%d\n", top(stack));
}
}
return 0;
}
https://www.acmicpc.net/problem/10828
그냥 답이지 정답은 아님
스택 구현 까먹었음!!
'C, C++ > Baekjoon Online Judge' 카테고리의 다른 글
Baekjoon 백준 2747, 2748, 10870번 피보나치 수 (0) | 2022.04.25 |
---|---|
Baekjoon 백준 2884번 알람 시계 (0) | 2022.04.24 |
Baekjoon 15894번 수학은 체육과목 입니다 (0) | 2021.05.13 |
Baekjoon 백준 1212번 8진수 2진수 (0) | 2021.05.13 |
Baekjoon 백준 1032번 명령프롬프트 (0) | 2021.05.13 |
댓글
티스토리 방명록
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
Blog is powered by
Tistory / Designed by
Tistory
Contact: j0n9m1n1@gmail.com
Contact: j0n9m1n1@gmail.com