
https://school.programmers.co.kr/learn/courses/30/lessons/12909
이 올바른 괄호 문제는 기초 스택 알고리즘을 공부하는데 좋은 문제인거 같아 포스팅 하게 되었다.

💡 Stack 의 기초 설명
스택은 탑처럼 자료를 쌓아 올리는 구조로 Last In First Out(LIFO) 형식의 자료 구조이다.
Stack 의 연산:
💡문제 풀이 알고리즘
빈 스택을 만들어 놓고 입력으로 받아들일 s에 대해 반복문을 돌며 열린괄호"("일때는 빈 스택에 push하고 닫힐괄호")" 일때는 스택에서 pop을 한다
닫힐괄호")" 일때 stack이 빈 스택이라면 반복문을 중단하고 False를 반환한다.
반복문이 정상종료 될시 stack의 길이가 0이면 True고 0보다 크다면 False이다.
💡정답코드:
def solution(s):
answer = True
stack = []
for br in s:
if br == "(":
stack.append(br)
else:
if len(stack) >= 1:
stack.pop()
else:
answer=False
break
if len(stack) >= 1:
answer=False
return answer