본문 바로가기
Coding Test/Python

[프로그래머스] 올바른 괄호 Python Code

by giem 2022. 8. 30.
반응형

프로그래머스 올바른 괄호를 파이썬으로 풀어보겠다.

 

이 문제도 레벨 2지만 예전 문제라 레벨 1에 가까운 듯하다.


문제

 


구현

 

flag 변수를 통해 괄호가 진행 중인지 여부를 판단할 수 있도록 했다.

'('라면 +를 해주고 ')'라면 -를 해주어

-값이 되면 False를 리턴하고

끝나고 나서의 값이 0이면 True를 리턴할 수 있게 구현했다.


코드

 

def solution(s):
    flag=0
    for c in s:
        if c == '(':
            flag+=1
        else:
            flag-=1

        if flag<0:
            return False
    if flag==0:
        return True
    else:
        return False

다른 풀이

 

def is_pair(s):
    st = list()
    for c in s:
        if c == '(':
            st.append(c)

        if c == ')':
            try:
                st.pop()
            except IndexError:
                return False

    return len(st) == 0

이 풀이는 append와 pop을 사용해 구현했다.

pop을 할 데이터가 없으면 (보다 )가 많으므로 False를 리턴하게 되고

마지막에 조건문을 리턴하여 딱 떨어지면 True 아니면 False를 리턴하게 했다.

 

이 방법도 좋은 것 같다.

 

count를 쓰는 다른 풀이도 있지만

count 자체가 O(n)이므로 효율성이 위의 코드들 보다 떨어지기에 가져오지 않았다.

반응형

댓글