252. 2020 KAKAO BLIND RECRUITMENT 괄호 변환
1) 어떤 전략(알고리즘)으로 해결?
2) 코딩 설명
<내 풀이>
def solution(p):
def is_it_right(target) :
target = list(target)
stack = [ ]
for t in target :
if t=='(' :
stack.append(t)
else :
if stack :
stack.pop()
else :
return False
if len(stack) > 0 :
return False
else :
return True
def divide_u(p) :
lt = 1
rt = 0
idx = 1
while not lt==rt :
if p[0]==p[idx] :
lt+=1
else :
rt+=1
idx+=1
return idx-1
if is_it_right(p) :
return p
answer = ''
p = list(p)
if len(p)==0 :
return answer
else :
uidx = divide_u(p)
u = "".join(p[:uidx+1])
v = "".join(p[uidx+1:])
if not is_it_right(u) :
start = '('
start+=solution(v)
start+=')'
u=list(u)
u = u[1:len(u)-1]
newu = ''
for uu in u :
if uu=='(' :
newu+=(')')
else :
newu+=('(')
newu = "".join(newu)
start+="".join(newu)
return start
else :
return u+solution(v)
print(solution("()))((()"))
<반성 점>
- 처음에 문자열 뒤집어진다는게 순서 뒤집어지는 것이라구 오해함 꺄르르