문제풀이/프로그래머스
[프로그래머스][스택/큐] - 올바른 괄호(파이썬/python)
얄루몬
2022. 7. 31. 19:13
문제 풀이
def solution(s):
answer = True
stack = []
for i in s:
if stack:
if i == "(":
stack.append(i)
else:
if stack[-1] == "(":
stack.pop()
else:
stack.append(i)
if len(stack) !=0:
answer = False
return answer
- 해당 문제는 "()"가 한 짝일 때만 괄호라고 보기에 따로 ")(" 일 경우는 판단하지 않아도 된다.
- "("는 전부 stack에 넣어주며 진행하고 이때, stack[-1] 지점의 문자와 해당 for문을 도는 문자의 () 짝이 맞다면 스택에 있는 문자는 빼준다.
- 결과적으로 짝이 맞다면 그대로 answer = True를 반환할 것이고 맞지 않는다면 ")" "("가 stack 안에 있으므로 answer = False로 반환할 것이다