BRAKETS2 문제 오답인까닭을 모르겠습니다. ydk1130 제가 임의로 넣어본예제및 출력예제 입력예제를 넣어봤을 경우 정확한 값이 나옵니다. 허나 답은 오답..... 왜이런거죠? #include <stdio.h> #include <string.h> //{)}(}} int main(void) { int T; int length; int top=-1; int i=0; int flag=1; char input[10000]; char stack[5000]; scanf("%d",&T); while(T>0) { scanf("%s",input); length = strlen(input); while(i<length&&flag==1&&top>-2&&top<4999) { if(input[i]=='{'||input[i]=='('||input[i]=='[') { top++; stack[top]=input[i]; } else { if(stack[top]=='{'&&input[i]=='}') { top--; } else if(stack[top]=='('&&input[i]==')') { top--; } else if(stack[top]=='['&&input[i]==']') { top--; } else { flag=0; } } i++; } if(flag==0) { printf("NO\n"); } else { printf("YES\n"); } i=0; flag=1; top=-1; T--; } return 0; } 8년 전
2개의 댓글이 있습니다. Oltre 아래는 제가 예전에 풀었을 때 발생했던 오답 원인 들입니다. 직접 돌려볼 환경이 아니라서 제가 경험했던 것들만 남기고 갑니다. 1. 열린괄호만 있을 경우 닫힌 괄호만 있을 경우. 2. 열린 괄호들과 닫힌 괄호들이 짝은 이루지만 닫힌 괄호의 갯수가 맞지 않은 경우. 8년 전 link ydk1130 Oltre님 정말 감사합니다!!! 열린괄호만 있을 경우 YES가 나왔었네요 ㅠㅠ top이 -1로 끝나지 않으면 NO로 만드는 방법을 추가해 정답을 받았습니다 감사합니다! 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ydk1130
제가 임의로 넣어본예제및 출력예제 입력예제를 넣어봤을 경우 정확한 값이 나옵니다. 허나 답은 오답..... 왜이런거죠?
8년 전