level 2. 괄호 확인하기

|

문제출처

문제

is_pair함수는 문자열 s를 매개변수로 입력받습니다. s에 괄호가 알맞게 짝지어져 있으면 True를 아니면 False를 리턴하는 함수를 완성하세요. 예를들어 s가 “(hello)()”면 True이고, “)(“이면 False입니다. s가 빈 문자열(““)인 경우는 없습니다.

풀이코드

  • stack을 활용한다.
  • 빈 stack 에는 “(“ 만 들어갈 수 있다.
  • ”)” 이 올때까지 “(“ 를 쌓다가, “)” 이 오면 “(“ 하나와 함께 pop
  • 마지막에 빈 stack 이 남으면 True, 아니면 False
def is_pair(s):
    stack = []
    for ch in s:
        if ch == "(":
            stack.append(ch)
        elif ch == ")":
            try:
                stack.pop()
            except IndexError:
                return False

    return len(stack) == 0