문제 링크입니다: https://www.acmicpc.net/problem/4949
스택 개념을 이용한 문자열 처리 문제였습니다.
백준 9012번 괄호(http://jaimemin.tistory.com/754)와 유사한 문제였습니다.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
while (1)
{
string s;
getline(cin, s);
stack<char> st;
if (s.length() == 1 && s[0] == '.')
break;
bool flag = true;
for (int j = 0; j < s.length(); j++)
{
if (s[j] == '(')
st.push('(');
else if (s[j] == '[')
st.push('[');
else if (s[j] == ']')
{
if (!st.empty() && st.top() == '[')
st.pop();
else
{
flag = false;
break;
}
}
else if (s[j] == ')')
{
if (!st.empty() && st.top() == '(')
st.pop();
else
{
flag = false;
break;
}
}
}
if (flag && st.empty())
cout << "yes\n";
else
cout << "no\n";
}
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 2890번 카약 (0) | 2018.11.09 |
---|---|
백준 10546번 배부른 마라토너 (0) | 2018.11.09 |
백준 5612번 터널의 입구와 출구 (0) | 2018.11.07 |
백준 9324번 진짜 메시지 (0) | 2018.11.07 |
백준 2110번 공유기 설치 (2) | 2018.11.07 |