-

9012 괄호 본문

Algorithm/Baekjoon

9012 괄호

Boogallee 2018. 1. 11. 21:43


#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <stdio.h>

#include <string>

#include <stack>


using namespace std;




int main()

{

int T = 0;

cin >> T;


stack<char> S;

while (T--)

{

string str = "";

cin >> str;

//scanf("%s",str);


for (int i = 0; str[i]!='\0'; i++)

{

if (str[0] == ')')

S.push(str[0]);

break;

}


if (str[i] != ')'||S.empty()) S.push(str[i]);

else S.pop();

}


if (S.empty()) printf("YES\n");

else printf("NO\n");



}

system("pause");


return 0;

}


VS 2013에서는 입력값을 복사해서 넣으면 이런 현상이 나타난다.


테스트 케이스 한 개씩 넣으면 잘되는데..?


아마도 입력 받는 쪽에서 문제가 있어서 틀리나보다. 질문 올렸으니 답변이 달리면 수정하기로.



걍 틀린거였다. 로직에러가 있었음.


----------------------------------------------------------------------------------------------------------------------------------------------------------------



#include<iostream>

#include<stack>

#include<string>


using namespace std;


bool Check(string str){

int len = (int)str.length(); 

stack<char> st;             


for (int i = 0; i<len; i++) { 

char c = str[i];       


if (c == '('){

st.push(str[i]);  

}

else{

if (!st.empty()){  

st.pop();     

}

else{

return false;  

}

}

}


return st.empty();        

}


int main(void){


int n;

cin >> n;


for (int i = 0; i<n; i++){

string str;

cin >> str;


if (Check(str)){

cout << "YES" << endl;

}

else{

cout << "NO" << endl;

}

}


system("pause");

return 0;

}



'Algorithm > Baekjoon' 카테고리의 다른 글

1260 - DFS와 BFS  (0) 2018.01.16
10845  (0) 2018.01.16
1874-스택&순열  (0) 2018.01.11
10828-스택기초  (0) 2018.01.11
10989 - 기수정렬[아직 해결못함]  (0) 2018.01.10
Comments