m1ndy5's coding blog

99클럽 코테 스터디 4일차 TIL 스택/큐 :프로그래머스 LV.2 올바른 괄호 with Python 본문

알고리즘 with python/알고리즘 스터디

99클럽 코테 스터디 4일차 TIL 스택/큐 :프로그래머스 LV.2 올바른 괄호 with Python

정민됴 2024. 5. 23. 13:13

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제는 위쪽에서!

 

스택의 아아아아아아아아주 대표적인 문제 중 하나인 괄호 문제!

많이 풀어봐서 어려운 것은 없었다.

def solution(s):
    answer = True
    stack = []
    
    # '('일 때 집어넣고 ')'일 때 pop
    for p in s:
        if p == '(':
            stack.append('(')
        else:
            # 열린 괄호가 없다면 매칭 X
            if not stack:
                answer = False
                break
            stack.pop()
            
    # 열린 괄호가 남았다면 매칭 X
    if stack:
        answer = False
        
    return answer

열린 괄호와 닫힌 괄호가 짝을 이뤄야되기 때문에 열린 괄호일 때 스택에 집어넣고 닫힌 괄호 일 때 스택에서 빼는 방식으로 풀면 된다.

이 때 닫힌 괄호 차례인데 스택에 열린 괄호가 없거나 포문을 다 돌았는데도 열린괄호가 남아있다면 짝꿍이 없단 뜻이기 때문에 answer에 False를 넣어주면 된다!