링크 : www.acmicpc.net/problem/4949
어려운것 없이 직관적으로 풀면 되는 문제다.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main() {
ios::sync_with_stdio(NULL);
cin.tie(NULL);
while (true) {
bool ch = false;
string ss = "";
getline(cin, ss);
if (ss == ".") return 0;
stack<char> st;
for (int i = 0; i < ss.size(); i++) {
if (ss[i] == '(') st.push(ss[i]);
else if (ss[i] == '[') st.push(ss[i]);
else if (ss[i] == ')') {
if (!st.empty() && st.top() == '(') st.pop();
else {
ch = true;
break;
}
}
else if (ss[i] == ']') {
if (!st.empty() && st.top() == '[') st.pop();
else {
ch = true;
break;
}
}
else continue;
}
if (st.empty()&&!ch) cout << "yes" << "\n";
else cout << "no" << "\n";
}
return 0;
}
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#2565번 전깃줄 (C++) (0) | 2020.11.17 |
---|---|
#1874번 스택 수열 (C++) (0) | 2020.11.13 |
#1676번 팩토리얼 0의 개수 (C++) (0) | 2020.11.09 |
#9375번 패션왕 신해빈 (C++) (0) | 2020.11.09 |
#9012번 괄호 (C++) (0) | 2020.11.05 |