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

최동혁·2023년 1월 3일
0

프로그래머스

목록 보기
65/68

풀이 방법

풀이 방법이랄것이 없다...
문제가 이해가 가지 않았는데 문제에서 풀라는데로 뇌 빼고 풀었더니 맞았다.
이해하고 싶지도 않고, 이런 류의 문제는 코테에서 좀 안나왔으면 좋겠다.
팁은 이해하려고 하지 말고, 시키는데로 풀자..

풀이 코드

def rec(w):
    if w == "":
        return ""
    start = 0
    end = 0
    u = ""
    v = ""  
    
    for i in range(len(w)):
        if w[i] == "(":
            start += 1
        else:
            end += 1
        u += w[i]
        if start == end:
            if i != len(w) - 1:
                v = w[i + 1 : ]
                break
            else:
                v = ""
    stack = []
    flag = True
    for i in u:
        if i == "(":
            stack.append(i)
        else:
            if not stack:
                flag = False
                break
            else:
                stack.pop()
    if flag:
        # 올바른 문자열
        ans = rec(v)
        return u + ans
    else:
        # 올바르지 않은 문자열
        temp = "("
        ans = rec(v)
        temp = temp + ans + ")"
        new_u = u[1:-1]
        new_temp = ""
        for i in new_u:
            if i == "(":
                new_temp += ")"
            else:
                new_temp += "("
        temp += new_temp
        
        return temp
    
def solution(p):
    answer = ''
    answer = rec(p)
    return answer
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글