문제 설명
내 솔루션
def solution(s):
stack = ()
for i in s:
if i == '(': # ( 일 경우
stack.append(i)
else:
if len(stack) == 0: # stack이 비어있는데 )가 나온 경우 -> 올바르지 않음
return False
else: # stack에 (가 있고 다음으로 )가 온 상태 -> 괄호 한 쌍 찾음 -> stack에서 ( 꺼내기
stack.pop()
return len(stack) == 0
스택 구조 문제를 해결했습니다.
각 괄호( )를 확인하면서 스택에 넣고,
) 스택 확인 시 스택이 비어 있으면 괄호를 완성할 수 없으므로 False를 반환합니다.
스택에 하나 이상의 (가 있으면 쌍이 생성되므로 스택에서 하나를 제거합니다.
스택이 비게 되면 스택에 들어간 ( 의 모든 쌍이 생성되었기 때문에 True를 반환합니다.