https://programmers.co.kr/learn/courses/30/lessons/60058#
문제를 이해하는데 좀 어려웠다.
seperate함수는 해당 문자열을 u,v형태로 분리해주기 위함이고, correct함수는 올바른 괄호 문자열인지 아닌지 판단하기 위함이다.
이외에는 박스 안의 알고리즘 대로 구현해주면 된다.
def seperate(array):
start,end=0,0
for i in range(len(array)):
if array[i]=="(":
start+=1
else:
end+=1
if start==end:
return (array[:i+1],array[i+1:])
def correct(u):
start,end=0,0
for i in u:
if i=="(":
start+=1
else:
end+=1
if start<end:
return False
return True
def solution(p):
if p=="" or correct(p):
return p
u,v=seperate(p)
if correct(u):
return u+solution(v)
else:
temp="("
temp+=solution(v)
temp+=")"
u=list(u[1:-1])
for i in range(len(u)):
if u[i]=='(':
u[i]=")"
elif u[i]==")":
u[i]="("
temp+="".join(u)
return (temp)