스택의 아주 좋은 예시 문제라서 기록해둔다!
1. 닫는 괄호는 반드시 열린 괄호 다음에 나와야하고,
2. 등장한 열린 괄호 갯수보다 닫힌 괄호가 많아선 안된다.
- 즉 열린 괄호를 스택에 쌓아두고 닫힌 괄호가 나올때마다 스택에서 뽑아내면서 조건을 확인해봐야 한다.
s = "(())()"
def is_correct_parenthesis(string):
stack = []
for i in string:
if i == "(":
stack.append(i)
elif i == ")":
if len(stack):
stack.pop()
else:
return False
if len(stack) == 0:
return True
else:
return False
print(is_correct_parenthesis(s)) # True 를 반환해야 합니다!