/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int stack[202]={};
int top=-1;
void push1(int e)
{
top++;
stack[top]=e;
}
void push(int m)
{
top++;
stack[top]=m;
}
int main()
{
int a,b=0,x=0;
char m[201]={};
gets(m);
for(int i=0;m[i]!=NULL;i++)
{
if(47<m[i]&&m[i]<58)
{
x=x*10+m[i]-48;
if(m[i+1]==' ') {
push(x);
x=0;
}
}
else if(m[i]!=' ')
{
a=stack[top--];
b=stack[top--];
if(m[i]=='+') push(a+b);
else if(m[i]=='*')push(a*b);
else push(b-a);
}
}
while(top!=-1)
{
printf("%d",stack[top--]);
}
}
--자료구조
스택o / 큐
정렬 (기본정렬, 퀵정렬) / 이분탐색
DFS/BFS
그리디 / 동적계획법
정렬 sort
5 1 4 2 3 -> 1 2 3 4 5 or 5 4 3 2 1
오름차순 내림차순
구현 easy 성능 slow vs 구현 hard 성능 fast
1. 버블정렬
- 제일 느려 , 코드가 제일 쉬움
5 1 4 2 3
i=1
1 5 4 2 3
1 4 5 2 3
1 4 2 5 3
1 4 2 3 : 5
i=2
1 2 4 3 : 5
1 2 3 : 4 5
i=3
1 2 : 3 4 5
i=4
1 : 2 3 4 5
a b
10 5
t
5
t=a;
a=b;
b=t;
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1;j<n;j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
?
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1;j<n;j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
n--;
}
for (i = n; i >= 1; i--)
printf("%d\n", a[i]);
return 0;
}
*/
#include <stdio.h>
int a[1001];
int n, i, j, temp,d=0,e=0;
int main() {
scanf("%d", &n);
e=n;
if(n==2)
{
printf("1");
return 0;
}
for (i=1; i<=n; i++)
{
scanf("%d",&a[i]);
}
for(i=1; i<n; i++)
{
d=0;
for(j=1;j<n;j++)
{
if (a[j] > a[j+1])
{
d=1;
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
n--;
if(d==0)
{
e=i;
}
}
printf("%d",i-1);
return 0;
}