시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
괄호열은 네 문자 (, ), [, ]만으로 이루어진 문자열이다. 올바른 괄호열은 다음과 같이 정의한다.
()와 []는 올바른 괄호열이다.X가 올바른 괄호열이면 (X)와 [X]도 올바른 괄호열이다.X와 Y가 모두 올바른 괄호열이면, 두 문자열을 이어 붙인 XY도 올바른 괄호열이다.올바른 괄호열 X의 값은 다음 규칙으로 정한다.
()의 값은 2이다.[]의 값은 3이다.(X)의 값은 2 × value(X)이다.[X]의 값은 3 × value(X)이다.X와 Y를 이어 붙인 XY의 값은 value(XY) = value(X) + value(Y)이다.예를 들어 (()[[]])의 안쪽 ()[[]]의 값은 2 + 3 × 3 = 11이므로 (()[[]])의 값은 2 × 11 = 22이다. 또 ([])의 값은 2 × 3 = 6이므로 (()[[]])([]) 전체의 값은 22 + 6 = 28이다.
주어진 괄호열을 읽고 위 규칙에 따라 값을 계산해 출력하라. 올바른 괄호열이 아니면 0을 출력해야 한다.
첫째 줄에 괄호열을 나타내는 문자열이 주어진다. 문자열의 길이는 1 이상 30 이하이다.
괄호열의 값을 나타내는 정수 하나를 출력한다. 입력이 올바른 괄호열이 아니면 0을 출력한다.