sentences = []
sentence = input()
while sentence != '.':
sentences.append(sentence)
sentence = input()
for i in sentences:
stack = []
for letter in i:
if letter == '(' or letter == '[':
stack.append(letter)
elif letter == ')':
if stack:
item = stack.pop()
if item != '(':
stack.append(item)
break
else:
stack.append(letter)
break
elif letter == ']':
if stack:
item = stack.pop()
if item != '[':
stack.append(item)
break
else:
stack.append(letter)
break
if stack:
print("no")
else:
print("yes")
stack 문제에서 단골 주제인 괄호 체크 문제이다.
기존의 문제와 조금 다른점은 괄호의 종류가 2가지 라는 것이다.
괄호가 짝이 맞으면 stack에서 빼서 괄호를 없애주었고
짝이 안맞는 상황엔 stack에 괄호를 의도적으로 넣고 break 해주었다.
그렇게 하여 stack안의 요소 유무에 따라 짝이 맞는지 여부를 판단할 수 있었다.