반응형
stack으로 간단히 풀 수 있는 문제.
#include<iostream>
#include<string>
#include<stack>
using namespace std;
string str;
int main(int argc, char** argv)
{
int test_case;
/*
여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
*/
for (test_case = 1; test_case <= 10; ++test_case)
{
int N;
cin >> N;
cin >> str;
stack<char> sta;
bool flag = true;
for (int i = 0; i < str.size(); i++)
{
if (sta.empty())
{
sta.push(str[i]);
}
else
{
if (str[i] == '(' || str[i] == '{' || str[i] == '<' || str[i] == '[')
{
sta.push(str[i]);
}
else if(str[i] == ')')
{
if (sta.top() == '(')
{
sta.pop();
}
else
{
flag = false;
break;
}
}
else if (str[i] == '}')
{
if (sta.top() == '{')
{
sta.pop();
}
else
{
flag = false;
break;
}
}
else if (str[i] == '>')
{
if (sta.top() == '<')
{
sta.pop();
}
else
{
flag = false;
break;
}
}
else if (str[i] == ']')
{
if (sta.top() == '[')
{
sta.pop();
}
else
{
flag = false;
break;
}
}
}
}
if (flag && sta.empty())
{
cout << "#" << test_case << " " << 1 << endl;
}
else
{
cout << "#" << test_case << " " << 0 << endl;
}
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
반응형
'Algorithm' 카테고리의 다른 글
1224. [S/W 문제해결 기본] 6일차 - 계산기3 (0) | 2020.03.25 |
---|---|
SW 1211. [S/W 문제해결 기본] 2일차 - Ladder2 (0) | 2020.03.24 |
5650. [모의 SW 역량테스트] 핀볼 게임 (0) | 2020.03.22 |
1868. 파핑파핑 지뢰찾기 (0) | 2020.03.21 |
3459. 승자 예측하기 (0) | 2020.03.20 |