🗝️ Algorithm/🟩 백준

🟩 [백준] [Python] [Silver1] 2504번_괄호의 값

Dbswnstjd 2023. 2. 8. 21:02

문제

https://www.acmicpc.net/problem/2504

 

2504번: 괄호의 값

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

www.acmicpc.net

 

풀이

# 백준 2504번 문제 - 괄호의 값
bracket = list(input())

stack = []
answer = 0
tmp = 1

for i in range(len(bracket)):
    if bracket[i] == '(':
        stack.append(bracket[i])
        tmp *= 2
    
    elif bracket[i] == '[':
        stack.append(bracket[i])
        tmp *= 3
    
    elif bracket[i] == ')':
        if not stack or stack[-1] == '[':
            answer = 0
            break
        if bracket[i-1] == '(':
            answer += tmp
        stack.pop()
        tmp //= 2
    
    else:
        if not stack or stack[-1] == '(':
            answer = 0
            break
        if bracket[i-1] == '[':
            answer += tmp
        
        stack.pop()
        tmp //= 3

if stack:
    print(0)
else:
    print(answer)