<문제>
https://www.acmicpc.net/problem/2504
2504번: 괄호의 값
4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일
www.acmicpc.net
<코드>
import sys
input = sys.stdin.readline
lst = input()
stack = []
result = 0
tmp = 1
for i in range(len(lst)):
if lst[i] == '(':
stack.append('(')
tmp *= 2
elif lst[i] == '[':
stack.append('[')
tmp *= 3
elif lst[i] == ')':
if not stack or stack[-1] == '[':
result = 0
break
else:
if lst[i-1] == '(':
result += tmp
stack.pop()
tmp //= 2
elif lst[i] == ']':
if not stack or stack[-1] == '(':
result = 0
break
else:
if lst[i-1] == '[':
result += tmp
stack.pop()
tmp //= 3
if stack:
result = 0
print(result)
실버 1인데 어렵네요 ㅠㅠ
'파이썬' 카테고리의 다른 글
[백준 파이썬] 2294번 동전2 (0) | 2022.08.05 |
---|---|
[백준 파이썬] 9205번 맥주 마시면서 걸어가기 (0) | 2022.08.04 |
[프로그래머스 파이썬] 문자열 압축 (0) | 2022.08.02 |
[백준 파이썬] 1654번 랜선자르기 (0) | 2022.08.02 |
[백준 파이썬] 11660번 구간 합 구하기 (0) | 2022.07.30 |