[백준/BOJ] 백준 4949번 : 균형잡힌 세상
2020. 12. 30. 05:02ㆍ알고리즘 문제풀이
스택을 이용하여 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <string>
#include <stack>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
while (1)
{
string input;
stack<int> s;
bool check = true;
getline(cin, input);
if (input == ".")
break;
for (int i = 0; i < input.size(); i++)
{
if (input[i] == '(')
s.push(0);
else if (input[i] == ')')
{
if (s.size() == 0) //여는 괄호가 없이 닫는게 나올때
{
check = false;
break;
}
else if (s.top() == 1) //괄호의 짝이 맞지 않을때
{
check = false;
break;
}
else //괄호의 짝이 맞을때
s.pop();
}
else if (input[i] == '[')
s.push(1);
else if (input[i] == ']')
{
if (s.size() == 0) //여는 괄호가 없이 닫는게 나올때
{
check = false;
break;
}
else if (s.top() == 0) //괄호의 짝이 맞지 않을때
{
check = false;
break;
}
else //괄호의 짝이 맞을때
s.pop();
}
}
if (s.size() != 0) //열려있는 괄호가 있을때
check = false;
if (check)
cout << "yes" << "\n";
else
cout << "no" << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 16236번 : 아기 상어 (0) | 2021.01.23 |
---|---|
[백준/BOJ] 백준 11505번 : 구간 곱 구하기 (0) | 2020.12.30 |
[백준/BOJ] 백준 11438번 : LCA 2 (0) | 2020.12.30 |
[백준/BOJ] 백준 2042번 : 구간 합 구하기 (0) | 2020.12.30 |
[백준/BOJ] 백준 1602번 : 도망자 원숭이 (0) | 2020.12.30 |