[프로그래머스] 올바른 괄호 -3-

JaeHyung Lee·2023년 1월 27일


끼얏호!

def solution(s):
    answer = True
    stack = []
    if s[0] == ')' or s[-1] == '(' or len(s)%2 == 1:
        return False
    for i in range(len(s)):
        if s[i] == '(':
            stack.append(s[i])
        elif s[i] == ')' and '(' in stack:
            stack.pop()
        else:
            return False
            
    if len(stack) != 0:
        return False
    return True

수정한 부분은 크게 2가지였다.
첫 번째는 '(' 를 만났을 때 pop이 아닌 append를 시켜주는 것으로 순서를 바꾼 것 이었고,
두 번째는 for 문 안에 elif 문을 추가하여, pop시킬 '('가 없으면 False를 리턴하도록 한 것이다.

당장은 테스트를 통과하였지만, 다른 분들의 코드를 보면서 더 효율적인 방법은 무엇인지 고민해보려고 한다!

profile
열심히 공부하는 데이터테크놀로지 전공생입니다.

0개의 댓글