[알고리즘] 프로그래머스 2단계 올바른 괄호

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

풀이과정

  1. stack 배열을 만든다.
  2. stack이 비어있고, '('라면 stack에 담는다. ')'라면 False를 리턴한다.
  3. stack이 비어있지 않을 때는 괄호를 담는다. 만약 stack에 담긴 값이 '('와 ')'라면 짝이 맞기 때문에 stack에서 제거한다.
  4. 반복문을 마쳤을 때, stack에 담긴 괄호가 없다면 올바른 괄호이다.

좋은 웹페이지 즐겨찾기