728x90
반응형
반례 찾아서 예외처리하는거 어렵다..
stack이 비었는지도 확인해야한다.
#include<iostream>
#include<vector>
#include<string>
#include<stack>
using namespace std;
int main() {
stack<char>t1;
stack<char>t2;
int cnt = 0;
bool flag = false;
string s;
while (getline(cin,s)) {
if (s == ".") {
break;
}
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(') {
t1.push(s[i]);
}
if (s[i] == '[') {
t1.push(s[i]);
}
if (s[i] == ')') {
if (t1.empty() || t1.top() != '(')flag = true;
else t1.pop();
}
if (s[i] == ']') {
if (t1.empty() || t1.top() != '[')flag = true;
else t1.pop();
}
}
if (!t1.empty())flag = true;
if (flag)cout << "no\n";
else cout << "yes\n";
t1 = t2;
flag = false;
}
}
728x90
반응형
'하루 1문제 챌린지 > Silver4' 카테고리의 다른 글
백준 1940번 주몽(C++) (0) | 2024.03.02 |
---|