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

README·2022년 12월 14일
0

파이썬 PS풀이

목록 보기
100/136

문제 설명

괄호들을 입력받고 이 괄호가 올바른 괄호인지 확인하는 문제입니다.
올바른 괄호란 (())처럼 괄호가 완전히 마무리되는 괄호로 (())) 같은 경우는 올바른 괄호가 아닙니다.

작동 순서

  1. 입력받은 괄호들을 스택에 저장합니다.
  2. 스택에서 괄호들을 하나씩 꺼내면서 )인 경우 오른쪽 괄호 저장용 스택에 )을 저장합니다.
  3. 스택에서 괄호들을 하나씩 꺼내면서 (인 경우 오른쪽 괄호 저장용 스택에 )가 있는지 확인합니다. 만약 있을 경우 오른쪽 괄호 저장용 스택에서 ) 하나를 제거하고 비어있는 경우 False를 출력합니다.
  4. 스택에서 모든 괄호들을 꺼내고 난 뒤 오른쪽 괄호 저장용 스택을 확인해서 비어있는 경우 True를 출력하고 비어있지 않은 경우 False를 출력합니다.

소스코드

from collections import deque


def solution(s):
    answer = True

    stack1 = deque()
    for c in s:
        stack1.append(c)
    stack2 = deque()

    while stack1:
        c = stack1.pop()
        if c == '(':
            if not stack2:
                return False
            else:
                stack2.pop()
        else:
            stack2.append(c)

    if stack2:
        return False
    else:
        return True
profile
INTP 개발자 지망생

0개의 댓글