[프로그래머스] 올바른 괄호 -2-

JaeHyung Lee·2023년 1월 27일

코드가 한층 간결해졌다.

def solution(s):
    answer = True
    stack = []
    if s[0] == ')' or s[-1] == '(' or len(s)%2 == 1:
        return False
    for i in range(len(s)):
        if s[i] == ')':
            stack.pop()
        else:
            stack.append(s[i])
    if len(stack) != 0:
        return False
    return True

이번엔 모든 효율성 테스트를 통과하였다.
지난번 코드와 다른 점은 크게 2가지이다.
첫 번째는 remove() 함수 대신 pop() 함수를 사용했다는 점이다.
두 번째는 예외처리이다.
입력 s를 검사하기 전에, 괄호가 올바르지 않다는 것을 쉽게 알 수 있는 경우를 3가지로 생각하였다.

  1. ')' 로 시작하는 경우
  2. '('로 끝나는 경우
  3. 입력된 괄호의 개수가 홀수인 경우

하지만 테스트 케이스 2가지(5번, 11번)를 실패(런타임 에러)하였기 때문에
다시 도전하려고 한다.

profile
열심히 공부하는 데이터테크놀로지 전공생입니다.

0개의 댓글