JH 개발 블로그
괄호변환 파이썬 본문
def make_u_v(s):
cnt1 = cnt2 = 0
for i in s:
if i == '(':
cnt1 += 1
else:
cnt2 += 1
if cnt1 == cnt2: break
return s[:cnt1 + cnt2], s[cnt1 + cnt2:]
def is_right(s):
cnt1 = cnt2 = 0
for i in s:
if i == '(':
cnt1 += 1
else:
cnt2 += 1
if cnt2 > cnt1: return False
return True
def solution(p):
if p == '':
return p
answer = ''
u, v = make_u_v(p)
if is_right(u):
answer += u
answer += solution(v)
else:
answer += '(' + solution(v) + ')' + ''.join(')' if x == '(' else '(' for x in u[1:-1])
return answer
u를 뒤집은거와 u[::-1]이 같을거라고 생각해버리는 오류를 범했다..
문제에서 구현 하라는대로만 구현 하면 되는 문제였다.
'코딩테스트 > 2020 KAKAO BLIND RECRUITMENT' 카테고리의 다른 글
외벽 점검 파이썬 (0) | 2022.02.08 |
---|---|
기둥과 보 설치 파이썬 (0) | 2022.02.07 |
가사 검색 (0) | 2022.02.06 |
자물쇠와 열쇠 파이썬 (0) | 2022.02.05 |
문자열 압축 파이썬 (0) | 2022.02.05 |
Comments