본문 바로가기
알고리즘/카카오 기출문제

[파이썬🐍] 프로그래머스 : 괄호 변환

by 코딩개미뚠뚠 2021. 6. 26.
반응형
def isRight(s):
    stack = 0
    for i in s:
        if i == '(' : stack += 1
        else : stack -= 1
        if stack < 0 : return False
    return True
def reverse(s):
    ans = ''
    for i in s : 
        if i == '(' : ans += ')'
        else : ans += '('
    return ans
def solution(p):
    if p == '' : return '' #1
    stack = 0  #2
    for i in range(len(p)):
        if p[i] == "(" : stack += 1
        else : stack -= 1
        if stack == 0:
            u = p[:i+1]
            v = p[i+1:]
            break
    if isRight(u) : return u+solution(v)  #3,3-1
    else : return '('+solution(v)+')'+reverse(u[1:-1]) #4
반응형

댓글