class Solution:
def isValid(self, s: str) -> bool:
stack = []
dic = {
')' : '(',
'}' : '{',
']' : '['
}
for c in s:
# 괄호 시작하는거면 스택에 넣어주고
if c not in dic:
stack.append(c)
# 스택이 비었으면 닫는 괄호만 들어온거니 false고
# 괄호 닫는 거면 넣어주지말고 스택에서도 자기짝 빼줘야함
elif not stack or dic[c] != stack.pop():
return False
# 스택이 남아있으면 닫는 괄호가 안와서 불완전한거임
if stack:
return False
return True