본문 바로가기

코딩 테스트/프로그래머스

[프로그래머스 Python] - 괄호변환(2020 KAKAO BLIND RECRUITMENT)

반응형
def make(arr):
    
    # 변수정의
    cnt1 = 0
    cnt2 = 0
    state = True
    
# Main 
    
    # 빈 문자열 반환
    if arr == []:
        return []

    for idx,val in enumerate(arr):
        if val == '(':
            cnt1 += 1
        else : 
            cnt2 += 1 
            
        if cnt1 == cnt2 :
            break;
        
        elif cnt1 < cnt2 : # cnt2가 더 크면 올바르지 않은 괄호 문자열
            print("올바르지 않은 괄호 문자열")
            state = False
    
    # 반환값 비교 
    u = arr[0:idx+1]
    v = arr[idx+1:] 
    
    if len(v) == 0:
        answer.append((state,u))
        return answer
    else :
        answer.append((state,u))
        return make(v)
    
    
def nstr(arr):
    nstr = ''
    nstr += '('
    
    for i in arr[1:-1]:
        if i == ')':
            nstr += '('
        else :
            nstr += ')'
    
    nstr += ')'
    return nstr

answer = []

def solution(arr):
    final = ''
    var = make(arr)
    if var == []:
        return []
    
    else : 
        for i in var:
            if i[0] != True:
                final += nstr(i[1])
            else :
                final += i[1]
        return final
    

ㅌdXibal

 

 

 

 

 

반응형