프로그래머스 올바른 괄호

GGob2._.·2023년 4월 14일
0

algorithm

목록 보기
17/55

문제 설명

()만으로 이루어진 s가 주어졌을 때, 위 그림처럼 잘못된 경우는 False, 문제가 없는 경우는 True를 리턴하도록 하는 문제다.

백준에서 한번 봤었던 문제라 처음 작성한 코드로 바로 맞췄다.


접근 방식

  • stack 배열을 하나 선언하고, s를 하나씩 보면서 (일 때는 (를 집어넣고 )일 떄는 넣었던 (를 빼는 식으로 수행한다.

  • 만약 (를 넣지 않았는데 )가 나온다면 에러가 발생할 것인데, 이는 try ~ catch를 이용해 예외처리 해주었다.

작성한 코드

def solution(s):
    answer = False
    
    stack = []
    
    for i in range(len(s)): 
        
        if s[i] == "(":
            stack.append("(")
        else:
            try:
                stack.pop()
            except:
                answer = False
                return answer
        
    if len(stack) == 0:
        answer = True
        
    return answer
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글