백준
백준 소스코드 [C++] 2504 괄호의 값
Hani_Levenshtein
2020. 8. 17. 07:43
https://www.acmicpc.net/problem/2504
2504번: 괄호의 값
4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일
www.acmicpc.net
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string xx;
stack<char> s;
cin >> xx;
int n=1,i,result=0;
for (i = 0;i < (int)xx.length();i++) {
if (xx[i] == '(') {
s.push(xx[i]);
n = n * 2;
}
else if (xx[i] == '[') {
s.push(xx[i]);
n = n * 3;
}
else if (xx[i] == ')') {
if (s.empty() == true || s.top() == '[') {
result = 0;
break;
}
else if (xx[i - 1] == '(')
result = result + n;
s.pop();
n = n / 2;
}
else if (xx[i] == ']') {
if (s.empty()==true || s.top() == '(') {
result = 0;
break;
}
else if (xx[i - 1] == '[')
result = result + n;
s.pop();
n = n / 3;
}
}
if (s.empty()!=true) result = 0;
cout << result;
return 0;
}