/*
#include <stdio.h>
typedef struct
{
int data;
char name[100];
} type;
int main()
{
int a,b;
type arr[1001],temp;
scanf("%d\n",&a);
for(int i=1;i<=a;i++)
{
scanf("%s %d",arr[i].name,&arr[i].data);
}
for(int i=1;i<a;i++)
{
for(int j=1;j<=a-i;j++)
{
if(arr[j].data<arr[j+1].data)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=3;i<4;i++)
{
printf("%s", arr[i].name);
}
}
*/
/*
#include <stdio.h>
typedef struct
{
int data;
int number;
} type;
int main()
{
type a[101];
int n,temp=0,b=0;
scanf("%d",&n);
for (int i=1; i<=n; i++)
scanf("%d %d",&a[i].number, &a[i].data);
for(int i=1; i<n; i++)
{
for(int j=1;j<n;j++)
{
if (a[j].number > a[j+1].number)
{
temp = a[j].data;
a[j].data= a[j+1].data;
a[j+1].data = temp;
b= a[j].number;
a[j].number= a[j+1].number;
a[j+1].number= b;
}
}
}
for(int i=1;i<=n;i++)
{
printf("%d %d\n",a[i].number, a[i].data);
}
}*/
/*
#include <stdio.h>
typedef struct
{
int ymd;
char s[100];
}type;
int main()
{
int n, y, m, d;
type a[101],c,temp;
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
scanf("%s %d %d %d",a[i].s, &y, &m ,&d);
a[i].ymd=1000*y+100*m+d;
}
for(int i=1;i<n;i++)
{
for(int j=1;j<=n-i;j++)
{
if(a[j].ymd > a[j+1].ymd)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
else if(a[j].ymd == a[j+1].ymd)
{
if(strcmp(a[j].s,a[j+1].s)>0)
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
}
for(int i=1;i<=n;i++)
{
printf("%s\n", a[i].s);
}
}
*/
/*
#include <stdio.h>
typedef struct
{
int n, m,c;
}type;
int main()
{
int a;
type s[1001],temp;
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
scanf("%d %d",&s[i].m, &s[i].c);
s[i].n=i;
}
for(int i=1;i<a;i++)
{
for(int j=1;j<=a-i;j++)
{
if(s[j].m <s[j+1].m)
{
temp= s[j];
s[j]= s[j+1];
s[j+1]=temp;
}
else if(s[j].m==s[j+1].m && s[j].c <s[j+1].c)
{
temp= s[j];
s[j]= s[j+1];
s[j+1]=temp;
}
}
}
for(int i=1;i<=a;i++)
{
printf("%d %d %d\n", s[i].n, s[i].m, s[i].c);
}
return 0;
}
3014 : 버블선택삽입 (x) 메모이제이션 활용 정렬
이진탐색 (재귀)
탐색 ( 순차탐색 vs 이진탐색)
1. 정렬된 상태
2. 반씩 잘라가면서 탐색
이진 탐색(binary search) -> bs
#include <stdio.h>
int arr[50]={1,3,9,16,25,42,50,60,100};
int bs(int s, int e, int k) // arr[s] ~ arr[e] 에서 k값의 위치 리턴 (없으면 -1리턴)
{
int mid=(s+e)/2;
if(s>e) return -1; //못찾았을때
if(arr[mid]==k) return mid;
else if(arr[mid]<k) return bs(mid+1,e,k);
else return bs(s,mid-1,k);
}
int main()
{
printf("%d",bs(0,8,42));
}
*/
#include <stdio.h>
int main()
{
int n,a[10000]={};
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",a[i]);
}
}