- 올바른 괄호인지 판단할 리스트 arr를 만들어준다.
- 현재 괄호가 '('이면 arr에 넣어주고 arr이 빈 스택이면 올바르지 않으므로 반복문을 탈출한다.
- arr이 빈 스택이 아니라면 맨 끝에 있는 '('를 빼준다.
- 반복문을 수행 후 arr이 빈 스택이 아니면 false를 반환한다.
# 프로그래머스 Lv2 - 올바른 괄호
# 문제링크: https://programmers.co.kr/learn/courses/30/lessons/12909
def solution(s):
answer = True
arr = []
for i in s:
if i == '(':
arr.append(i)
else:
if arr == []:
answer = False
break
else:
arr.pop()
if arr != []:
answer = False
return answer
처음에는 양끝에 괄호와 왼쪽 괄호와 오른쪽 괄호의 개수에만 집중하였는데 그 방식의 문제를 발견하였고 스택방식을 이용해서 문제를 해결하였다. 꽤 오랜시간이 걸린 것 같은데 알고리즘의 실력을 다지기에 좋은 문제인 것 같다.