2504 : 괄호의 값

풀이

뚜룹뚜빠라빠라

코드

#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 '(':
			tmp *= 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, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-01-25 21:18

Read more posts by this author