Q18. 프로그래머스 : 괄호변환
코딩테스트 연습 - 괄호 변환 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
구현문제에 가깝다. 처음에 문제를 이해하는게 좀 거지같은데 이해 잘 하고 고대로 코드로 옮기기만 하면 쉽게 풀 수 있다.
def check_proper(string):
count = 0
for ch in string:
if ch == '(':
count += 1
elif count == 0:
return False
else:
count -= 1
return True
def find_balanced(string):
count = 0
for i in range(len(string)):
if string[i]=='(':
count += 1
else:
count -= 1
if count == 0:
return i
return len(string)-1
def solution(p):
if not p:
return p
if check_proper(p):
return p
b_index = find_balanced(p)
u = p[:b_index+1]
v = p[b_index+1:]
if check_proper(u):
return u + solution(v)
ans = '(' + solution(v) + ')'
for i in range(1,len(u)-1):
if u[i] == '(':
ans += ')'
else:
ans += '('
return ans