answer = []
def check_balanced(string):
stack = []
for element in string:
if element == '(' or element == '[':
stack.append(element)
elif element == ')':
if not stack:
return False
else:
if stack[-1] == '(':
stack.pop()
else:
return False
elif element == ']':
if not stack:
return False
else:
if stack[-1] == '[':
stack.pop()
else:
return False
if stack:
return False
return True
while True:
string = input()
if string == '.':
break
if check_balanced(string):
answer.append("yes")
else:
answer.append("no")
for ans in answer:
print(ans)
이번 문제는 바로 이전에 풀었던 '9012번 : 괄호' 문제와 동일한데, 대괄호가 추가되었다는 점을 제외하면 동일한 문제이다.
따라서 현재 닫는 괄호와 바로 여는 괄호가 일치( ( ) , [ ] )하는지 확인하고, 일치하지 않는다면 False를 반환하면 된다.
'Data Structure 🛠️ > Stack' 카테고리의 다른 글
[백준 2504번] 괄호의 값 (1) | 2023.10.18 |
---|---|
[백준 10799번] 쇠막대기 (1) | 2023.10.18 |
[백준 9012번] 괄호 (1) | 2023.10.18 |
[백준 17298번] 오큰수 (0) | 2023.10.14 |
[프로그래머스 Lv.2] 올바른 괄호 (0) | 2023.09.21 |