코드 복사/붙여넣기 하는 당신이 아름답습니다.

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

wookje.kwon's profile image

wookje.kwon

2018-01-25 21:18

Read more posts by this author