문제:
괄호가 주어질 때, 올바른 괄호면 'True'를 아니면 'False'를 반환하는 함수 작성.
입력 예:
s - answer
"()()" - true
"(())()" - true
")()(" - false
"(()(" - false
풀이:
stack 자료구조 사용
코드:
def solution(s):
stack = []
for i in s:
if i == '(': # 여는 괄호가 나왔을 때
stack.append(i)
else: # 닫는 괄호가 나왔을 때
if len(stack) == 0: # 스택이 비어있으면 짝이 맞지 않음으로 False
return False
else:
stack.pop() # 스택에서 여는 괄호를 빼낸다
# 모든 괄호를 확인한 후,
if len(stack) == 0: #짝이 맞은 경우
return True
else: # 짝이 틀린 경우
return False