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

minidoo·2020년 10월 26일
0

알고리즘

목록 보기
49/85
post-thumbnail
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에 담긴 괄호가 없다면 올바른 괄호이다.

0개의 댓글

관련 채용 정보