알고리즘 오답노트 08

올바른 괄호

스택의 아주 좋은 예시 문제라서 기록해둔다!
1. 닫는 괄호는 반드시 열린 괄호 다음에 나와야하고,
2. 등장한 열린 괄호 갯수보다 닫힌 괄호가 많아선 안된다.

  • 즉 열린 괄호를 스택에 쌓아두고 닫힌 괄호가 나올때마다 스택에서 뽑아내면서 조건을 확인해봐야 한다.
s = "(())()"

def is_correct_parenthesis(string):
  stack = []
  for i in string:
    if i == "(":
      stack.append(i)
    elif i == ")":
      if len(stack):
        stack.pop()
      else:
        return False
  if len(stack) == 0:
    return True
  else:
    return False

print(is_correct_parenthesis(s))  # True 를 반환해야 합니다!

좋은 웹페이지 즐겨찾기