알고리즘/(깨짐) BOJ)2504 괄호의 값 (다시보기) 광그로 2017. 3. 11. 14:53 문제 : https://www.acmicpc.net/problem/2504#include <iostream> #include <cstring> using namespace std; int main() { char input[33]; char check[33] = { NULL }; int value[33] = { 0 }; cin >> input; for (int i = 0, j=0; i < strlen(input); i++) { if (input[i] == '(') { check[j++] = ')'; //cehck[j]에 ) 넣은 후 j+1 } else if (input[i] == '[') { check[j++] = ']'; //cehck[j]에 ) 넣은 후 j+1 } if (input[i] == ')') { j--; if (j < 0 || check[j] != ')') { cout << 0; return 0; } else { value[j] += 2 * (value[j + 1] ? value[j + 1] : 1); check[j] = NULL; value[j + 1] = 0; } } else if (input[i] == ']') { j--; if (j < 0 || check[j] != ']') { cout << 0; return 0; } else { value[j] += 3 * (value[j + 1] ? value[j + 1] : 1); check[j] = NULL; value[j + 1] = 0; } } } cout << value[0]; }