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

s2ul3·2022년 9월 28일
0

문제링크

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

문제설명

알고리즘

수식을 왼쪽부터 한 글자씩 읽음.

  • '('인 경우 --> 스택에 push
  • ')'인 경우
    - 스택에서 pop하는데 스택이 비어 있으면 --> 올바른 수식 X

수식을 다 읽은 후, 스택이 비어있지 않다면 올바른 수식 X

코드

def solution(s):
    stack = []
    for i in s:
        if i == '(':
            stack.append(i)
        else: # i == ')'인경우
            try:
                stack.pop()
            except: # 스택이 비어있는 경우, 즉 닫는괄호 ')'가 더 많은 경우 false 반환
                return False
    if stack == []: # s를 다 돌고난 후, 스택이 비어있는 경우, 즉 모든 괄호들의 짝이 맞는 것이므로 true 반환
        return True
    else: # s를 다 돌고난 후, 스택이 비어있지 않은 경우, 즉 여는괄호 '('가 더 많은 경우 false 반환
        return False
profile
statistics & computer science

0개의 댓글