반응형
출처: 프로그래머스 코딩 테스트 연습, 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
반응형
'프로그래머스 > level 2' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 (0) | 2022.02.14 |
---|---|
[프로그래머스] 빛의 경로 사이클 (0) | 2022.02.07 |
[프로그래머스] 괄호 회전하기 (0) | 2022.01.25 |
[프로그래머스] 스킬트리 (0) | 2022.01.18 |
[프로그래머스] n^2 배열 자르기 (0) | 2022.01.17 |