1. 문제
https://programmers.co.kr/learn/courses/30/lessons/60058?language=python3
2. 풀이
- 파이썬 string 함수 뒤집기
ans = ans + u[:: -1]
3. 코드
# p를 문자열 2개로 분리
def split(p):
cnt = 0
index =0
for index in range(len(p)):
if p[index] == ')':
cnt = cnt +1
else :
cnt = cnt -1
if cnt == 0:
break
return p[:index+1],p[index+1:]
# u가 올바른 괄호 문자열인지 확인
def check(u):
stack = []
for p in u:
if p == '(':
stack.append(p)
else:
# 스택이 비어있으면
if stack == []:
return False
stack.pop()
return True
def solution(p):
if len(p) == 0:
return ""
# u, v 로 분리
u,v = split(p)
if (check(u)):
return u + solution(v)
else :
ans = '('
ans = ans + solution(v)
ans = ans + ')'
# 앞뒤 자르고 괄호 바꾸기
u = u[1:len(u)-1]
ans = ans + u[:: -1]
return ans
'ALGORITHM > Kakao' 카테고리의 다른 글
[Python] 키패드 누르기 (0) | 2021.09.30 |
---|---|
[Python] 징검다리 (0) | 2021.09.30 |
(C++) 행렬 테두리 회전하기 (0) | 2021.05.16 |
(C++ )2021 Dev-Matching 로또의 최고 순위와 최저 순위 (0) | 2021.05.13 |
(Python) 신규 아이디 추천 (0) | 2021.05.08 |