def isRight(u):
tmp = []
for i in u:
if i == '(':
tmp.append(i)
if tmp and i == ')':
tmp.pop()
if len(tmp) == 0:
return True
else:
return False
def splitstr(w):
cnt = [0,0]
for idx, char in enumerate(w):
if char == '(':
cnt[0]+=1
if char == ')':
cnt[1]+=1
if cnt[0]==cnt[1]:
break
return w[:idx+1], w[idx+1:]
def flipstr(u):
u = list(u)
u.pop(0)
u.pop()
tmp = []
for i in u:
if i =='(':
tmp.append(')')
else:
tmp.append('(')
return "".join(tmp)
def recul(w):
if len(w) == 0:
return ""
u, v = splitstr(w)
if isRight(u):
return u + recul(v)
else:
return '(' + recul(v) + ')' + flipstr(u)
def solution(p):
return recul(p)
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스/Python] 구명보트(그리디) (0) | 2021.01.04 |
---|---|
[프로그래머스/Python] 소수찾기(완전탐색) (0) | 2021.01.03 |
[프로그래머스/Python] 기능개발(큐) (0) | 2021.01.03 |
[프로그래머스/Python] 주식가격(스택) (0) | 2021.01.03 |
[프로그래머스/Python] 프린터(큐) (0) | 2021.01.03 |