[프로그래머스.LV2]- 올바른 괄호(Python) feat.기초 스택

Surf in Data·2022년 7월 18일

프로그래머스

목록 보기
2/2
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/12909

이 올바른 괄호 문제는 기초 스택 알고리즘을 공부하는데 좋은 문제인거 같아 포스팅 하게 되었다.

💡 Stack 의 기초 설명

스택은 탑처럼 자료를 쌓아 올리는 구조로 Last In First Out(LIFO) 형식의 자료 구조이다.

Stack 의 연산:

  • pop: 스택에서 가장 위에 있는 원소를 삭제
  • push: 스택의 맨 위에 원소 추가
  • top: 스택의 가장 위에 있는 원소 접근

💡문제 풀이 알고리즘

  1. 빈 스택을 만들어 놓고 입력으로 받아들일 s에 대해 반복문을 돌며 열린괄호"("일때는 빈 스택에 push하고 닫힐괄호")" 일때는 스택에서 pop을 한다

  2. 닫힐괄호")" 일때 stack이 빈 스택이라면 반복문을 중단하고 False를 반환한다.

  3. 반복문이 정상종료 될시 stack의 길이가 0이면 True고 0보다 크다면 False이다.

💡정답코드:

def solution(s):
    answer = True
    stack = []
    for br in s:
        if br == "(":
            stack.append(br)
        else:
            if len(stack) >= 1:
                stack.pop()
            else:
                answer=False
                break
    if len(stack) >= 1:
        answer=False

    return answer
profile
study blog

0개의 댓글