프로그래머스/level 2
[프로그래머스] 괄호변환
binaryJournalist
2022. 2. 7. 20:45
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Python
def get_uv(p):
a = 0
for i, e in enumerate(p):
if e == "(":
a += 1
else:
a -= 1
if a == 0:
return p[:i+1], p[i+1:]
def is_u_right(u):
stack = []
for p in u:
if p == '(':
stack.append(p)
else:
if not stack:
return False
stack.pop()
return True
def solution(p):
if p == "": return p
u, v = get_uv(p)
if is_u_right(u):
return u + solution(v)
else:
# 4-1
answer = '('
# 4-2
answer += solution(v)
# 4-3
answer += ')'
# 4-4
for p in u[1:len(u)-1]:
if p == '(':
answer += ')'
else:
answer += '('
# 4-5
return answer
참고: https://jokerldg.github.io/algorithm/2021/05/22/parentheses-change.html
반응형