/**#include<stdio.h>
#include<string.h>
typedef struct{
char g[11];
}q;
int main()
{
q f[10001];
q temp;
int d;
scanf("%d\n",&d);
for(int i=1;i<=d;i++)
scanf("%s",f[i].g);
for(int i=1;i<d;i++)
{
for(int j=1;j<=d-i;j++)
{
if(strcmp(f[j].g,f[j+1].g)>0)
{
temp=f[j];
f[j]=f[j+1];
f[j+1]=temp;
}
}
}
for(int i=1;i<=d;i++)
printf("%s\n",f[i].g);
}#include <stdio.h>
int a[10001];
int n, i, j, temp, key;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=2; i<=n; i++)
{
key=a[i]; //
for(j = i-1;key<a[j] && a[j]!=a[0];j--)
{
a[j+1]=a[j]; // a[j]를 뒤로 밀어라
}
a[j+1]=key;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}#include<stdio.h>
int a[101]={};
int d,j,w;
int main()
{
scanf("%d",&d);
for(int i=1;i<=d;i++)
scanf("%d",&a[i]);
for(int i=2;i<=d;i++)
{
w=a[i];
for(j=i-1;j>0 && w>a[j];j--)
{
a[j+1]=a[j];
}
a[j+1]=w;
}
for(int i=1;i<=d;i++)
printf("%d ",a[i]);
}
3014 : 기존의 버블, 선택 삽입 (x)
메모이제이션 기법 이용 <- ( 데이터 값의 범위 : 0 ~ 100,000 )
arr[i] : i가 입력된 횟수를 저장 **/
#include<stdio.h>
int main()
{
int a[100001]={};
int d,w;
scanf("%d",&d);
for(int i=0;i<d;i++){
//scanf("%d",&a[i]); (x) // a[i] : i번째 입력된 데이터
scanf("%d",&w);
a[w]++;
}
// w 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 10만
// a[w] 0 0 1 0 1 0 2 0 1 0 0 0 0 0 ... 0
//
// 2 4 6 6 8
// w를 a[w]번 출력 ( w 는 0 ~ 10만 )
// 0 ~ 10만
// 0을 a[0]번출력, 1을 a[1]번 출력, 2를 a[2]번 출력 ,,,,, 10만을 a[10만]번 출력
for(int i=0;i<100000;i++)
{
for
}
}