728x90
반응형
문제에 쓰여진 설명대로 그대로 코딩했다.
def rightWord(w):
store = 0
for i in w :
if i == ')':
store -= 1
else :
store += 1
if store < 0:
return False
return True
def run(w):
# 2. U / V 분리
u = ''
v = ''
r = l = 0
for i, v in enumerate(w) :
if v == '(':
r += 1
else :
l += 1
if r == l :
u = w[:i+1]
v = w[i+1:]
break
if w == '':
return ''
# 3. 올바른 괄호 문자열 인지 check
if(rightWord(u)):
# 3-1. 올바른 괄호면 그대로 추가
return u + run(v)
else :
# 4-5.
u = u[1:len(u)-1]
u = u.replace("(","1").replace(")","(").replace("1",")")
return "(" + run(v) + ")" + u
def solution(p):
# 1. 빈문자열 check
if p == '':
return ''
return run(p)
끝
728x90
반응형
'알고리즘 > 코드' 카테고리의 다른 글
[코딩테스트 고득점 Kit] 해시 2 - 폰켓몬 (0) | 2023.01.03 |
---|---|
Maximum Subarray - 백준10211, leetcode 53 알고리즘 성능 비교 (0) | 2022.12.14 |
코딩테스트 고득점 Kit [정렬] - K번째 수 (python) (1) | 2020.05.11 |
leetcode 1week (0) | 2020.05.03 |
프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN (0) | 2020.04.26 |
댓글