Updated:

기본 정보


문제

  • 괄호로만 이뤄진 문자열 S
  • 올바른 괄호쌍으로만 이뤄졌으면 true, 아니면 false


알고리즘

  • stack
    • 괄호 원소를 저장하는 리스트
    • S내 원소를 순회하며
      • 비어있으면 넣기
      • 여는 괄호인 경우 넣기
      • 닫는 괄호 ’)’가 나올시, top의 원소가 여는 괄호 ‘(’인지 확인하기 → 그 여는 괄호 pop
    • 순회 후 리스트가 비게되면 true


나의 시도

def solution(s):
    parenthesis = []

    for elem in s:
        if parenthesis:
            if elem == '(':
                parenthesis.append(elem)
            else:
                if parenthesis[-1] == '(':
                    parenthesis.pop()
                else:
                    parenthesis.append(elem)
        else:
            parenthesis.append(elem)

    return not parenthesis