/*
#include<stdio.h>
#include <string.h>
int top=-1;
int main()
{
char str[50001]={};
scanf("%s",str);
for(int i=0;str[i]!=NULL;i++)
{
if(str[i]=='(')
{
top++;
}
else if(str[i]==')')
{
if(top==-1)
{
printf("bad");
return 0;
}
top--;
}
}
if(top==-1)
{
printf("good");
}
else
{
printf("bad");
}
return 0;
}
자료구조
스택 , 큐
정렬, dfs/bfs
#include<stdio.h>
int queue[500]={};
int front=-1, rear=-1;
//front : 마지막으로 데이터가 나간 위치
//rear : 마지막으로 데이터가 들어온 위치
void enq(int data)
{
rear++;
queue[rear]=data;
}
int deq()
{
if(rear==front) return 0; //empty check
front++;
return queue[front];
}
void view()
{
printf("queue : ");
for(int i=front+1;i<=rear;i++)
{
printf("%d ",queue[i]);
}
printf("\n");
}
int main()
{
while(1)
{
printf("1.enq 2. deq >>");
int a;
scanf("%d",&a);
if(a==1)
{
printf("enq data >>");
int d;
scanf("%d",&d);
enq(d);
}
else
{
int de = deq();
if(de==0)
{
printf("queue is empty\n");
}
else
{
printf("deq data is %d\n",de);
}
}
view();
}
}
#include <stdio.h>
#include <string.h>
int stack[100] = {};
int top=-1;
void push(int data)
{
top++;
stack[top]=data;
}
int pop()
{
return stack[top--];
}
int main()
{
char str[101]={}, str1[101]={};
int l, l1, i, u=0;
scanf("%s", str);
scanf("%s", str1);
l=strlen(str)-1;
l1=strlen(str1)-1;
if(l>l1)
{
for(i=0; i<l+1; i++)
{
if(l1-i<0)
{
push((str[l-i]+u-'0')%10);
u=(str[l-i]+u-'0')/10;
}
else
{
push((str[l-i]-'0'+str1[l1-i]+u-'0')%10);
u=(str[l-i]-'0'+str1[l1-i]+u-'0')/10;
}
}
if(u==1)
push(1);
while(top!=-1)
{
printf("%d",pop());
}
}
else
{
for(i=0; i<l1+1; i++)
{
if(l-i<0)
{
push((str1[l1-i]+u-'0')%10);
u=(str1[l1-i]+u-'0')/10;
}
else
{
push((str[l-i]-'0'+str1[l1-i]+u-'0')%10);
u=(str[l-i]-'0'+str1[l1-i]+u-'0')/10;
}
}
if(u==1)
push(1);
while(top!=-1)
{
printf("%d",pop());
}
}
}
#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 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++)
{
temp=0;
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;
}
}
if(temp==0)
{
printf("%d", i-1);
return 0;
}
}
printf("%d", n-1);
return 0;
}
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main()
{
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++)
{
min=i;
for (j=i+1; j<=n; j++)
{
if(a[min]>a[j])
min=j;
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}*/