/*
#include<stdio.h>
int stack[200];
int top=-1; //마지막으로 입력된 데이터의 위치
pop()
{
if(top==-1) return -1;
return stack[top--];
}
main()
{
int n,i,j,num=0;
char str[50];
scanf("%d ",&n);
for(i=1;i<=n;i++)
{
gets(str);
if(str[1]=='u')
{
num=0;
for(j=6;str[j]!=' ';j++)
{
num=num*10+str[j]-'0';
}
top++;
stack[top]=num;
}
else if(str[0]=='t')
{
if(top==-1)
{
printf("-1\n");
}
else
{
printf("%d\n",stack[top]);
}
}
else if(str[0]=='e')
{
if(top==-1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
else if(str[0]=='s')
{
printf("%d\n",top+1);
}
else
{
pop();
}
}
}
3+3+1+3+1+2+1+1+1
#include<stdio.h>
int top=0; // 놓여있는 쇠막대기의 개수
int main()
{
int i,n,sum=0,num=0;
char str[100001];
scanf("%s",str);
for(i=0; str[i]!=NULL; i++)
{
if(str[i]=='(')
{
if(str[i+1]==')')
{
sum+=top;
i++;
}
else
{
top++;
}
}
else
{
top--;
sum++;
}
}
printf("%d",sum);
}
#include<stdio.h>
int stack[50001];
int top=-1;
void push(int data)
{
top++;
stack[top]=data;
}
int pop()
{
if(top==-1)
return -1;
return stack[top--];
}
int main()
{
char str[50001];
int i;
scanf("%s",str);
for(i=0; str[i]!=NULL; i++)
{
if(str[i]=='(')
{
push(1);
}
else
{
if(top==-1)
{
printf("bad");
return 0;
}
pop();
}
}
if(top==-1)
{
printf("good");
}
else
{
printf("bad");
}
}
*/