알고리즘/프로그래머스

[프로그래머스] Level2, 올바른 괄호 (Python)

wookcode 2021. 6. 8. 21:43
728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/12909?language=python3 

 

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

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

programmers.co.kr

 

코드

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

stack이 비어있는데 닫는괄호가 들어오게되면 괄호의 짝이 안맞기 때문에 False를 리턴한다.

 

for문을 다돌았을때 stack에 여는 괄호가 남아있으면 괄호의 짝이 안맞기 때문에 False를 리턴한다.

반응형