파이썬

[프로그래머스 파이썬] 올바른 괄호

운으로 2022. 9. 13. 21:16

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<풀이>

def solution(s):
    stack = []
    
    for i in s:
        if not stack:
            if i == ')':
                return False
            else:
                stack.append('(')
        else:
            if i == '(':
                stack.append('(')
            else:
                if stack.pop() == ')':
                    return False
    if stack:
        return False
    else:
        return True

 

stack이 비었는데 ) 먼저 나오면 false 반환

스택이 있는데 현재 )인데 pop한 것도 ')' 이면 false반환 아닐 경우 append

 

마지막에 스택이 남아있을 경우에는 괄호가 올바르지 않으므로 false반환 비었을 경우 true 반환