https://www.acmicpc.net/problem/2504
import sys
input = sys.stdin.readline
word = list(input().rstrip('\n'))
arr = []
ans = 0
temp = 1
for i in range(len(word)):
if word[i] == '(':
arr.append('(')
temp *= 2
elif word[i] == '[':
arr.append('[')
temp *= 3
elif word[i] == ')':
if not arr or arr[-1] == '[':
ans = 0
break
if word[i-1] == '(':
ans += temp
arr.pop()
temp = temp // 2
elif word[i] == ']':
if not arr or arr[-1] == '(':
ans = 0
break
if word[i-1] == '[':
ans += temp
arr.pop()
temp = temp // 3
if arr:
print(0)
else:
print(ans)
백준 10799번과 풀이가 유사하다.