프로그래머스 : 올바른 괄호

2021. 10. 30. 15:04문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

전형적인 스택/큐 문제이다.

"("가 나오면 스택에 넣고, ")"가 나오면 스택에서 "("를 뺀다.
이 때, 스택이 비어있거나, 마지막에 스택이 비어있지 않으면 올바른 괄호가 아니다.

from collections import deque
def solution(s):
    answer = True
    queue = deque([])
    
    for i in s:
        if i == "(":
            queue.append(i)
        else:
            if len(queue)==0:
                answer = False
                break
            check = queue.pop()
            
    if len(queue) != 0:
        answer = False
    return answer