코테 대비 python/백준
2504 괄호의 값 - 스택
ylab
2023. 2. 12. 08:31
https://www.acmicpc.net/problem/2504
2504번: 괄호의 값
4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X
www.acmicpc.net
s = list(input())
stack = []
res = 1
result = 0
# 1~4번째 과정 시작
for i in range(len(s)):
if s[i]=='(':
res *= 2
stack.append(s[i])
elif s[i]=='[':
res *= 3
stack.append(s[i])
elif s[i]==')':
if not stack or stack[-1]!='(':
result = 0
break
if s[i-1]=='(':
result += res
res //= 2
stack.pop()
elif s[i]==']':
if not stack or stack[-1]!='[':
result = 0
break
if s[i-1]=='[':
result += res
res //= 3
stack.pop()
if stack:
print(0)
else:
print(result)