1. 문제
2. 코드
def reverse_brackets(brackets):
reversed_brackets = ""
for bracket in brackets:
if bracket == "(":
reversed_brackets += ")"
else:
reversed_brackets += "("
return reversed_brackets
def check_proper(brackets):
pair_count = 0
temp = []
for bracket in brackets:
if bracket == "(":
temp.append(bracket)
elif len(temp) > 0:
popped = temp.pop()
pair_count += 1
if len(brackets) / 2 == pair_count:
return True
else:
return False
def separate_brackets(u):
left = 0
right = 0
new_brackets = ""
for bracket in u:
if left > 0 and left == right:
break
if bracket == "(":
left += 1
elif bracket == ")":
right += 1
new_brackets += bracket
v = u[len(new_brackets):]
u = new_brackets
return v, u
def make_proper_brackets(u):
if u == "":
return ""
v, u = separate_brackets(u)
is_proper_buckets = check_proper(u)
if is_proper_buckets:
return u + make_proper_brackets(v)
else:
middle_brackets = u[1:-1]
return f"({make_proper_brackets(v)}){reverse_brackets(middle_brackets)}"
def solution(brackets):
is_proper_buckets = check_proper(brackets)
if is_proper_buckets:
proper_brackets = brackets
else:
proper_brackets = make_proper_brackets(brackets)
return proper_brackets
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 (0) | 2021.10.05 |
---|---|
[프로그래머스] 튜플 (python) (0) | 2021.07.02 |
[프로그래머스] 문자열 압축 (python) (0) | 2021.07.01 |
[프로그래머스] 순위검색 (python) (0) | 2021.06.30 |
[프로그래머스] 네트워크(python) (0) | 2021.06.29 |
댓글