-
9012 괄호 본문
#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 |