상상쓰

[프로그래머스] 괄호 변환 본문

Coding Test

[프로그래머스] 괄호 변환

상상쓰 2021. 8. 21. 09:48

https://programmers.co.kr/learn/courses/30/lessons/60058

 

코딩테스트 연습 - 괄호 변환

카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를

programmers.co.kr

 

균형잡힌 괄호 문자열, c == 0

올바른 괄호 문자열, t = True

를 가지고 문제의 4단계를 재귀함수를 이용해 진행하면 된다. 

 

def solution(p):
    answer = ''
    
    if p != '':
        n = len(p)
        c = 0
        t = True
        
        for i in range(n):
            c = c + 1 if p[i] == '(' else c - 1
            
            if c < 0: t = False
            
            if c == 0:
                if t: 
                    return p[:i+1] + solution(p[i+1:])
                else:
                    return '(' + solution(p[i+1:]) + ')' + ''.join(['(' if i == ')' else ')' for i in p[1:i]])
    else:
        return answer
                
print(solution('(()())()')) # (()())()
Comments