문제풀이/프로그래머스

[프로그래머스][스택/큐] - 올바른 괄호(파이썬/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로 반환할 것이다