제가 짠 알고리즘은 입력받은 괄호의 갯수가 짝수개가 아닐 경우 바로 false를 리턴해주고
열린 괄호가 나올 경우 짝이 맞는 닫힌 괄호를 다른 배열에 저장해주어 비교해주는 방식입니다.
닫힌괄호를 저장해놓은 배열에 아직 값이 남아있는데도 불구하고 입력이 끝난 경우 false를 리턴해줍니다.
제가 놓치고 있는 부분이 어디인지 잘 모르겠습니다..
#include<iostream>#include<fstream>#include<cstring>usingnamespacestd;char*inputArr=newchar;//입력받은캐릭터값저장하는 배열char*openArr=newchar;//열린괄호를 저장하고 있는 배열intj;//openArr의 indexboolmatch(char*brankets){if((strlen(brankets)%2)>0)returnfalse;else{for(inti=0;i<strlen(inputArr);i++){if(inputArr[i]=='{'){openArr[j]='}';j++;}if(inputArr[i]=='('){openArr[j]=')';j++;}if(inputArr[i]=='['){openArr[j]=']';j++;}if((inputArr[i]!='{')&&(inputArr[i]!='(')&&(inputArr[i]!='[')){if(strlen(openArr)==0)returnfalse;else{if(inputArr[i]==openArr[j-1]){openArr[j-1]=NULL;j--;}elsereturnfalse;}}}}if(strlen(openArr)!=0)returnfalse;returntrue;}intmain(){ifstreaminput;input.open("input.txt");intC;//cin >> C;input>>C;while(C!=0){j=0;//cin >> inputArr;input>>inputArr;cout<<(match(inputArr)?"YES":"NO");cout<<endl;C--;}return0;}
9년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
algoalgoalgo
제가 짠 알고리즘은 입력받은 괄호의 갯수가 짝수개가 아닐 경우 바로 false를 리턴해주고
열린 괄호가 나올 경우 짝이 맞는 닫힌 괄호를 다른 배열에 저장해주어 비교해주는 방식입니다.
닫힌괄호를 저장해놓은 배열에 아직 값이 남아있는데도 불구하고 입력이 끝난 경우 false를 리턴해줍니다.
제가 놓치고 있는 부분이 어디인지 잘 모르겠습니다..
9년 전