코딩테스트/Python

[python] 프로그래머스 스택/큐 level2 - 올바른 괄호

go.od_planter 2024. 9. 23. 20:53

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

 

프로그래머스

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

programmers.co.kr

 

코드.

def solution(s):

    cnt = 0
    for i in s:
        if cnt < 0:
            return False
        if i == '(':
            cnt += 1
        else:
            cnt -= 1
    
    if cnt != 0:
        return False

    return True

 

 

다른 풀이.

def solution(s):
    stack = []
    
    for char in s:
        if char == '(':
            stack.append(char)  # 여는 괄호는 스택에 추가
        else:
            if not stack:  # 닫는 괄호가 나왔는데 스택이 비어 있으면 짝이 맞지 않음
                return False
            stack.pop()  # 닫는 괄호가 맞는 경우, 스택에서 제거
            
    return len(stack) == 0  # 스택이 비어 있어야 올바른 괄호열
728x90
반응형