/*
#include <stdio.h>
#include <string.h>
int stack[201]={};
int top=-1;
void push(int n)
{
if(top==201) return;
stack[++top]=n;
}
int pop()
{
return stack[top--];
}
int main()
{
char str[201]={};
int a, b, num=0;
gets(str);
for(int i=0; str[i]!=NULL; i++){
if(str[i]=='*' || str[i]=='-' || str[i]=='+'){
a=pop();
b=pop();
if(str[i]=='*'){
push(a*b);
}
if(str[i]=='+'){
push(a+b);
}
if(str[i]=='-'){
push(b-a);
}
}
else if(str[i]!=' '){
num=num*10+str[i]-48;
if(str[i+1]==' '){
push(num);
num=0;
}
}
}
printf("%d",pop());
}
정렬 : 순서대로 나열 ( 오름차순, 내림차순 )
5 1 4 2 3 -> 1 2 3 4 5
1. 구현 easy 성능 bad (자전거)
-> 버블, 선택, 삽입
2. 구현 hard 성능 good (비행기)
-> 퀵정렬, 병합정렬, 기수정렬 ...
버블정렬
if (a[j] < a[j+1]) : 내림차순
if (a[j] > a[j+1]) : 오름차순
#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-i; 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 main()
{
int arr[101]={};
int i,j,temp;
for(i=1; i<=7; i++){
scanf("%d",&arr[i]);
}
for(i=1; i<7; i++){
for(j=1; j<=7-i; j++){
if(arr[j]<arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("%d\n",arr[1]);
printf("%d\n",arr[2]);
}
*/
/*
#include <stdio.h>
int main()
{
int arr[1001];
int a=0,n,i,j,temp;
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%d",&arr[i]);
}
for(i=1; i<n; i++){
a=0;
for(j=1; j<=n-i; j++){
if(arr[j] > arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
a++;
}
}
if(a==0){
break;
}
}
printf("%d",i-1);
return 0;
}
#include <stdio.h>
typedef struct
{
char name[51];
int a;
}student;
int main()
{
int i,j,n,mi=0;
scanf("%d",&n);
student arr[51],temp;
arr[0].a=0;
for( i=1; i<=n; i++){
scanf("%s %d",arr[i].name,&arr[i].a);
}
for(i=1; i<=n; i++){
for(j=1; j<n-i; j++){
if(arr[j].a < arr[j+1].a){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("%s",arr[3].name);
return 0;
}
*/



