BOJ2504 괄호의 값
문자열의 현재가 닫는 괄호이고 이전 괄호의 값이 짝이 맞는 닫는 괄호라면 그때 tmp의 값을 더해준다.
import sys
input = sys.stdin.readline
blocks = input().strip()
st = []
ans = 0
tmp = 1
for i in range(len(blocks)):
if blocks[i] in '([':
if blocks[i] == '(':
tmp *= 2
else:
tmp *= 3
st.append(blocks[i])
continue
if st:
if st[-1] == '(':
if blocks[i] == ')':
# 여기가 blocks[i-1]인 것이 중요
if blocks[i-1] == '(':
ans += tmp
st.pop()
tmp //= 2
else:
print(0)
sys.exit()
elif st[-1] == '[':
if blocks[i] == ']':
# 여기가 blocks[i-1]인 것이 중요
if blocks[i-1] == '[':
ans += tmp
st.pop()
tmp //= 3
else:
print(0)
sys.exit()
else:
if blocks[i] in ')]':
print(0)
sys.exit()
if st:
print(0)
else:
print(ans)
Author And Source
이 문제에 관하여(BOJ2504 괄호의 값), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@randi65535/BOJ2504저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)