Python/구현
[2020KAKAO][Python] 괄호 변환
Mr_Chu
2020. 9. 11. 23:51
programmers.co.kr/learn/courses/30/lessons/60058
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴�
programmers.co.kr
# 올바른 괄호 문자열인지 판단
def check(p):
cnt = 0
for i in range(len(p)):
if p[i] == '(':
cnt += 1
else:
if cnt == 0: # 올바르면 마지막에 0이 된다
return False # 중간에 0이 되면 X
cnt -= 1
return True
# 균형잡힌 괄호 문자열의 인덱스 반환
def balance_index(p):
id = 0
for i in range(len(p)):
if p[i] == '(':
id += 1
else: id -= 1
if id == 0:
return i
def solution(p):
answer = ''
if p == '':
return answer
index = balance_index(p)
u = p[:index+1]
v = p[index+1:]
if check(u):
answer = u + solution(v)
else:
answer += '('
answer += solution(v)
answer += ')'
u = list(u[1:-1])
for i in range(len(u)):
if u[i] == '(':
u[i] = ')'
else:
u[i] = '('
answer += ''.join(u)
return answer
조건대로만 짜면 되는 문제
* 리스트 -> 문자열 : "구분자".join(리스트)
* 문자열 -> 리스트 : .split("구분자")