while True:
word = input()
if word == '.':
break
stk = []
for i in word:
if i == '(':
stk.append(i)
elif i == '[':
stk.append(i)
elif i == ')':
if stk and stk[-1] == '(':
stk.pop()
else:
stk.append(i)
break
elif i == ']':
if stk and stk[-1] == '[':
stk.pop()
else:
stk.append(i)
break
if stk:
print('no')
else:
print('yes')
스택 자료구조를 이용하면 구현되는 문제이다.