Completion over Perfection

프로그래머스 - 올바른 괄호 (파이썬3 Python3) 본문

파이썬 (Python)

프로그래머스 - 올바른 괄호 (파이썬3 Python3)

난차차 2023. 9. 10. 17:09
반응형

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

 

프로그래머스

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

programmers.co.kr

 

 

<풀이방법>

 

괄호가 올바로 닫혔는지를 판단하면 되는데, 

deque에 주어진 괄호문자열을 모두 stack으로 넣어주고

왼쪽괄호 "(" 가 들어오면 cnt값에 1을 늘려주고, 오른쪽괄호 ")" 가 들어오면 cnt값을 1 줄여주는 방식으로 풀었습니다. 

 

올바른 괄호라면 cnt값이 0으로 끝날거구요, 

만약 cnt값이 음수로 내려간다면 오른쪽괄호 ")" 가 왼쪽괄호 "(" 보다 많다는 뜻이므로 바로 false를 리턴해줍니다. 

 

 

from collections import deque

def solution(s):
    q = deque()
    s = list(s)
    for s in s:
        q.append(s)
    cnt = 0
    while q:
        if cnt < 0:
            return False
        if q.popleft() == '(':
            cnt += 1
        else:
            cnt -= 1
    if cnt != 0:
        return False
    return True

반응형
Comments