728x90
https://programmers.co.kr/learn/courses/30/lessons/60058
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
# "균형잡힌 괄호 문자열"의 인덱스 반환
def balanced_index(p):
count = 0 # 왼쪽 괄호의 개수
for i in range(len(p)):
if p[i] == '(':
count += 1
else:
count -= 1
if count == 0:
return i
# 올바른 괄호 문자열"인지 판단
def check_proper(p):
count = 0
for i in p:
if i == '(':
count += 1
else:
if count == 0:
return False
count -= 1
return True
def solution(p):
answer = ''
if p == '':
return answer
index = balanced_index(p)
u = p[:index+1]
v = p[index+1:]
if check_proper(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
728x90
'Algorithm > Programmers' 카테고리의 다른 글
Lv.1 공원 산책 (0) | 2023.11.05 |
---|---|
Lv1.추억 점수 (0) | 2023.11.05 |
프로그래머스 Lv2. 호텔 대실 - 파이썬 (0) | 2023.08.12 |
Lv2. 과제 진행하기(Python) (0) | 2023.07.04 |