특정수열값 정렬할 배열을 하나 만들어야함
stack 이용
반복문을 사용
수열의 값이 stack[top]의 값과 비교하는 과정
#include <stdio.h>
#define STACK_SIZE 1000000
int stack[STACK_SIZE];
int top = -1;
int isEmpty()
{
if (top < 0)
return 1;
else
return 0;
}
int isFull()
{
if (top >= STACK_SIZE)
return 1;
else
return 0;
}
void push(int x)
{
if (isFull() == 0)
stack[++top] = x;
}
int pop()
{
if(isEmpty() == 0)
return stack[top--];
}
int main(void)
{
int n, tmp;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
push(arr[0]);
for (int i = 1; i < n; i++)
{
if (stack[top] < arr[i])
push(arr[i]);
else if (stack[top] < arr[i])
continue;
else
{
for (int j = top; j > -1; j--)
{
if (arr[i] > stack[j])
break;
tmp = j;
}
stack[tmp] = arr[i];
}
}
printf("%d ", top + 1);
return 0;
}