풀이
뚜룹뚜빠라빠라
코드
#include <stdio.h>
#include <stack>
using namespace std;
int sum, tmp = 1;
char str[33];
stack<char> stk;
int main() {
scanf("%s", str + 1);
for (int i = 1; str[i]; i++) {
switch (str[i]) {
case '(':
btmp *= 2, stk.push('('); break;
case '[':
tmp *= 3, stk.push('['); break;
case ')':
if (str[i - 1] == '(') sum += tmp;
if (stk.empty()) return !printf("0");
if (stk.top() == '(') stk.pop();
tmp /= 2; break;
case ']':
if (str[i - 1] == '[') sum += tmp;
if (stk.empty()) return !printf("0");
if (stk.top() == '[') stk.pop();
tmp /= 3;
}
}
printf("%d", stk.empty() ? sum : 0);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이