1. 괄호를 열 때 해당 수를 곱한다.
2. 쌍을 이루지 않으면 탈출
3. 직전에 쌍을 이루는 괄호에서 누적 값을 더해간다.
let str = readLine()!.map{$0}
var stack = [Character]()
var temp = 1
var result = 0
for i in 0..<str.count {
switch str[i] {
case "(":
stack.append("(")
temp *= 2
case "[":
stack.append("[")
temp *= 3
case ")":
if !stack.isEmpty, stack.last! == "[" {
result = 0
break
}
if str[i-1] == "(" {
result += temp
}
stack.removeLast()
temp /= 2
default :
if !stack.isEmpty, stack.last! == "(" {
result = 0
break
}
if str[i-1] == "[" {
result += temp
}
stack.removeLast()
temp /= 3
}
}
print(result)