정답 비율: 32.400%
문제 풀이
입력으로 들어오는 왼괄호 중 가장 마지막의 여는 괄호 다음에는 반드시 그에 맞는 닫는 괄호가 입력으로 들어와야 한다. 스택으로 문제를 풀어보자.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
while True :
sentence = input()
stack = []
if sentence == "." :
break
for i in sentence :
# 여는 괄호는 스택에 추가
if i == '[' or i == '(' :
stack.append(i)
# 닫는 괄호가 스택 맨위의 여는 괄호랑 일치하면 스택에서 지워주기
elif i == ']' :
if len(stack) != 0 and stack[-1] == '[' :
stack.pop()
else :
stack.append(']')
break
elif i == ')' :
if len(stack) != 0 and stack[-1] == '(' :
stack.pop()
else :
stack.append(')')
break
if len(stack) == 0 :
print('yes')
else :
print('no')