#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node
{
char Data;
struct Node * next;
}Node;
typedef struct Linkedlist
{
Node * cur;
int sizeOfData;
}Stack;
void Init(Stack * pstack)//초기화
{
pstack->cur = NULL;
pstack->sizeOfData = 0;
}
void Push(Stack * pstack, char pdata)//푸쉬
{
Node
* newNode
= (Node
*)malloc(sizeof(Node
));
newNode->Data = pdata;
newNode->next = pstack->cur;
pstack->cur = newNode;
(pstack->sizeOfData)++;
}
void Pop(Stack * pstack)//팝
{
char rdata;
Node * rNode = pstack->cur;
rdata = pstack->cur->Data;
pstack->cur = pstack->cur->next;
(pstack->sizeOfData)--;
}
int Top(Stack * pstack)
{
return pstack->cur->Data;
}
int VPS(Stack * pstack, char * sentence)
{
int fin = 0;
Init(pstack);
for(int i =0;i<50;i++)
{
if(sentence[i] == '(')
{
Push(pstack, '(');
fin++;
}
else if(sentence[i] == ')')
{
if(pstack->sizeOfData == 0)
return 0;
Push(pstack, ')');
Pop(pstack);
Pop(pstack);
fin --;
}
}
if(pstack->sizeOfData ==0 && fin ==0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
Stack stack;
int orderNum;
char order[10000];
Init(&stack);
for(int i = 0; i < orderNum;i++)
{
if(VPS(&stack, order))
{
}
else
{
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgTm9kZQp7CgljaGFyIERhdGE7CglzdHJ1Y3QgTm9kZQkqIG5leHQ7Cn1Ob2RlOwoKdHlwZWRlZiBzdHJ1Y3QgTGlua2VkbGlzdAp7CglOb2RlICogY3VyOwoJaW50IHNpemVPZkRhdGE7Cn1TdGFjazsKCnZvaWQgSW5pdChTdGFjayAqIHBzdGFjaykvL+y0iOq4sO2ZlAp7Cglwc3RhY2stPmN1ciA9IE5VTEw7Cglwc3RhY2stPnNpemVPZkRhdGEgPSAwOwp9Cgp2b2lkIFB1c2goU3RhY2sgKiBwc3RhY2ssIGNoYXIgcGRhdGEpLy/tkbjsiawKewkKCU5vZGUgKiBuZXdOb2RlID0gKE5vZGUgKiltYWxsb2Moc2l6ZW9mKE5vZGUpKTsKCQoJbmV3Tm9kZS0+RGF0YSA9IHBkYXRhOwoJbmV3Tm9kZS0+bmV4dCA9IHBzdGFjay0+Y3VyOwoJCglwc3RhY2stPmN1ciA9IG5ld05vZGU7CgkocHN0YWNrLT5zaXplT2ZEYXRhKSsrOwp9Cgp2b2lkIFBvcChTdGFjayAqIHBzdGFjaykvL+2MnQp7CgljaGFyIHJkYXRhOwoJTm9kZSAqIHJOb2RlID0gcHN0YWNrLT5jdXI7CgkKCXJkYXRhID0gcHN0YWNrLT5jdXItPkRhdGE7Cglwc3RhY2stPmN1ciA9IHBzdGFjay0+Y3VyLT5uZXh0OwoJCglmcmVlKHJOb2RlKTsKCShwc3RhY2stPnNpemVPZkRhdGEpLS07Cn0KCmludCBUb3AoU3RhY2sgKiBwc3RhY2spCnsKCXJldHVybiBwc3RhY2stPmN1ci0+RGF0YTsKfQoKaW50IFZQUyhTdGFjayAqIHBzdGFjaywgY2hhciAqIHNlbnRlbmNlKQp7CQoJaW50IGZpbiA9IDA7CglJbml0KHBzdGFjayk7Cglmb3IoaW50IGkgPTA7aTw1MDtpKyspCgl7CgkJaWYoc2VudGVuY2VbaV0gPT0gJygnKQoJCXsKCQkJUHVzaChwc3RhY2ssICcoJyk7CgkJCWZpbisrOwoJCX0KCQllbHNlIGlmKHNlbnRlbmNlW2ldID09ICcpJykKCQl7CgkJCWlmKHBzdGFjay0+c2l6ZU9mRGF0YSA9PSAwKQoJCQkJcmV0dXJuIDA7CgkJCVB1c2gocHN0YWNrLCAnKScpOwoJCQlQb3AocHN0YWNrKTsKCQkJUG9wKHBzdGFjayk7CgkJCWZpbiAtLTsKCQl9Cgl9CgkKCWlmKHBzdGFjay0+c2l6ZU9mRGF0YSA9PTAgJiYgZmluID09MCkKCXsKCQlyZXR1cm4gMTsKCX0KCWVsc2UKCXsKCQlyZXR1cm4gMDsKCX0KfQoKaW50IG1haW4oKQp7CglTdGFjayBzdGFjazsKCWludCBvcmRlck51bTsKCWNoYXIgb3JkZXJbMTAwMDBdOwoJCglJbml0KCZzdGFjayk7CgkKCXNjYW5mKCIlZCIsJm9yZGVyTnVtKTsKCQoJZm9yKGludCBpID0gMDsgaSA8IG9yZGVyTnVtO2krKykKCXsKCQlzY2FuZigiICVbXlxuXSIsb3JkZXIpOwoJCWlmKFZQUygmc3RhY2ssIG9yZGVyKSkKCQl7CgkJCXByaW50ZigiWUVTIik7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50ZigiTk8iKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJfQoJcmV0dXJuIDA7Cn0=