알고리즘/SWEA
[SWEA] 1218. 괄호 짝짓기
빙빙
2021. 2. 23. 14:35
1. 왼쪽 괄호들은 스택에 저장한다
2. 오른쪽 괄호들을 만난다면 스택에 저장된 것을 맨뒤에서 하나씩 pop()하면서 검사해준다.
3. 짝이 맞으면 1 아니면 0
T = 10
for tc in range(1, T+1):
N = int(input())
arr = input()
stack1 = []
result = 1
#왼쪽괄호들을 다 스택에 저장하고 오른쪽 괄호를 만난다면 pop해서 비교
for i in range(N):
if arr[i] == '(' or arr[i] == '{' or arr[i] == '[' or arr[i] == '<':
stack1.append(arr[i])
if arr[i] == ')':
if len(stack1) > 0 and stack1.pop() != '(':
result = 0
break
if arr[i] == '}':
if len(stack1) > 0 and stack1.pop() != '{':
result = 0
break
if arr[i] == ']':
if len(stack1) > 0 and stack1.pop() != '[':
result = 0
break
if arr[i] == '>':
if len(stack1) > 0 and stack1.pop() != '<':
result = 0
break
print("#{} {}".format(tc,result ))