BRACKETS2(짝이맞는괄호-스택) 에 대해 질문드립니다. spring 중복 질문 올려서 죄송합니다 너무 궁금한데 아직도 해결책을 못찾아서 다시 올려봅니다.. ㅠ_ㅠ 의심가는 부분이 있으면 찝어서 질문하는데 생각한 예제를 넣었을 때는 모두 맞는 답이 나와서 아래 코드를 제출했을 때 왜 런타임 오류가 나오는지 모르겠습니다. (C++ 소스 코드) #include <stdio.h> #include <string.h> char stack[1001]={0,}; int top=-1; int flag=0; void push(char n) { top++; stack[top]=n; } char pop() { top--; if(top<-1) return 'X'; else return stack[top+1]; } int main() { char pair[101]={0,}; int testCase; scanf("%d",&testCase); for(int t=0;t<testCase;t++) { scanf("%s",pair); for(int i=0;i<strlen(pair);i++) if(pair[i]=='(' || pair[i]=='{' || pair[i]=='[' ) push(pair[i]); else { if(pair[i]==')') if(pop()!='(') { flag=1; break; } if(pair[i]=='}') if(pop()!='{') { flag=1; break; } if(pair[i]==']') if(pop()!='[') { flag=1; break; } } if(!flag && top==-1) printf("YES\n"); else printf("NO\n"); top=-1; flag=0; memset(pair,0,sizeof(pair)); } return 0; } 8년 전
2개의 댓글이 있습니다. sinhwa2k stack이랑 pair 길이 문제 아닐까요? The length of the string will not exceed 10,000. 8년 전 link spring 너무 감사합니다 ㅠㅠ pair를 까먹고 있었네요 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
spring
중복 질문 올려서 죄송합니다
너무 궁금한데 아직도 해결책을 못찾아서 다시 올려봅니다.. ㅠ_ㅠ
의심가는 부분이 있으면 찝어서 질문하는데
생각한 예제를 넣었을 때는 모두 맞는 답이 나와서
아래 코드를 제출했을 때 왜 런타임 오류가 나오는지 모르겠습니다.
8년 전