반응형
2504번: 괄호의 값
4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일
www.acmicpc.net


코드
inp = list(input())
stack = []
error = 1
for i in inp:
if i == "(":
stack.append(i)
cnt = 0 # 괄호가 ()와 같이 연속으로 나오는지 확인하는 변수
elif i == ")":
num = 0
while len(stack) != 0:
a = stack.pop()
if a == "(":
if cnt == 0: # ()인 상황
stack.append(2)
cnt = 1
error = 0
else:
stack.append(num * 2)
cnt = 1
error = 0
break
elif a == '[':
print(0)
exit(0)
else: # 숫자이면
num += a
error = 1
if error == 1:
print(0)
exit(0)
elif i == "[":
stack.append(i)
cnt = 0
elif i == "]":
num = 0
while len(stack) != 0:
a = stack.pop()
if a == "[":
if cnt == 0: # ()인 상황
stack.append(3)
cnt = 1
else:
stack.append(num * 3)
cnt = 1
error = 0
break
elif a == '(':
print(0)
exit(0)
else: # 숫자이면
num += a
error = 1
if error == 1:
print(0)
exit(0)
answer = 0
for i in stack:
if i == "(" or i == "[":
print(0)
exit(0)
else:
answer += i
print(answer)
반례가 너무 많아서 힘들었다..
오류났던 예시들..
(
)
())[]
]()
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 2493번 탑 (0) | 2022.02.10 |
---|---|
[백준][Python] 2346번 풍선 터뜨리기 (0) | 2022.02.10 |
[백준][Python] 1966번 프린터 큐 (0) | 2022.02.08 |
[백준][Python] 10799번 쇠막대기 (0) | 2022.02.08 |
[백준][Python] 1935번 후위 표기식2 (0) | 2022.02.07 |
댓글