/*
#include<stdio.h>
typedef struct
{
int a;
int b;
int c;
} ar;
int main()
{
int i,j,n,k,m=1,u=0,p=0;
scanf("%d",&n);
ar arr[101];
for (i=1; i<=n; i++)
{
scanf("%d %d %d",&arr[i].a,&arr[i].b,&arr[i].c);
}
for (i=1; i<=2; i++)
{
for (j=1; j<=n; j++)
{
if (arr[m].c < arr[j].c)
{
m=j;
}
}
printf("%d %d\n",arr[m].a,arr[m].b);
if(i==1) u=arr[m].a;
else p=arr[m].a;
arr[m].c=0;
}
if (u==p)
{
for (i=1;i<=n; i++)
{
if (arr[i].a == u)
{
arr[i].c=0;
}
}
}
for (j=1; j<=n; j++)
{
if (arr[m].c < arr[j].c)
{
m=j;
}
}
printf("%d %d\n",arr[m].a,arr[m].b);
}
#include<stdio.h>
typedef struct
{
char str[11];
int a;
int b;
int c;
}st;
int main()
{
int i,j,n,k=1;
int d=1,e=1,f;
st arr[101];
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%s %d %d %d",arr[i].str,&arr[i].a,&arr[i].b,&arr[i].c);
}
for (j=1;j<=n;j++)
{
if (arr[k].a < arr[j].a)
{
k=j;
}
}
//printf("%s",arr[k].str);
for (i=1;i<=n;i++)
{
if (arr[k].b < arr[i].b)
{
d++;
}
if (arr[k].c < arr[i].c)
{
e++;
}
}
printf("%s %d %d", arr[k].str,d,e);
}
자료구조
data structure
1. 스택 stack (쌓는거)
후입선출 : 나중에 들어온게 먼저 나간다
LIFO Last In First Out
변수 : 변하는수
상수 : 항상 똑같은 수
#include<stdio.h>
#define SIZE 5
int stack[SIZE]={};
int top = -1; //top : 마지막 데이터의 위치
void view()
{
printf("stack>> ");
for(int i=0;i<=top;i++){
printf("%d ",stack[i]);
}
printf("\n");
}
void push(int data)
{
if (top==SIZE-1)
{
printf("stack is full!!!\n");
return ;
}
top++;
stack[top]=data;
}
void pop()
{
//printf("pop data : %d\n",stack[top]);
if(top!=-1) top--;
//스택이 비었다면 top을 감소시키지 않도록!! (empty check)
}
int main()
{
view();
push(5);
view();
push(1);
view();
push(2);
view();
push(6);
view();
push(7);
view();
push(8);
view();
//스택의 모든 원소를 pop
while(top!=-1)
{
pop();
}
view();
}
#include<stdio.h>
char stack[11];
int top = 0;
int main()
{
char str[11];
scanf("%s",str);
for(int i=0;str[i]!=NULL;i++){
// push(str[i]);
top++;
stack[top]=str[i];
}
while(top!=0){
printf("%c",stack[top]);
top--;
}
return 0;
}
*/