728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/60058?language=python3
최종 코드
import sys
sys.setrecursionlimit(20000000)
def make(w):
#1.
if len(w) == 0: return ""
#2. u, v로 분리
u = ""
v = ""
for i in range(len(w)):
u += w[i]
if u.count('(') == u.count(')'):
break
v = w[i+1:]
#3. u 체크
stack = []
for c in u:
if not stack:
stack.append(c)
continue
if stack[-1] == "(":
if c == ")": stack.pop()
else: stack.append(c)
else: stack.append(c)
#3-1.
if len(stack) == 0:
return u+make(v)
#4-1.
ans = "(" + make(v) + ")"
for i in range(1, len(u)-1):
if u[i] == "(": ans += ")"
else: ans += "("
return ans
def solution(p):
answer = make(p)
return answer
풀이 과정
풀이 시간 36분
import sys
sys.setrecursionlimit(20000000)
def make(w):
#1.
if len(w) == 0: return ""
#2. u, v로 분리
u = ""
v = ""
for i in range(len(w)):
u += w[i]
if u.count('(') == u.count(')'):
break
v = w[i+1:]
#3. u 체크
stack = []
for c in u:
if not stack:
stack.append(c)
continue
if stack[-1] == "(":
if c == ")": stack.pop()
else: stack.append(c)
else: stack.append(c)
#3-1.
if len(stack) == 0:
return u+make(v)
#4-1.
ans = "(" + make(v) + ")"
for i in range(1, len(u)-1):
if u[i] == "(": ans += ")"
else: ans += "("
return ans
def solution(p):
answer = make(p)
return answer
참고
- 5. 기둥과 보 설치 -> https://hwayomingdlog.tistory.com/315
- 7. 블록 이동하기 ->
728x90
반응형
'코테 노트 > 프로그래머스' 카테고리의 다른 글
Level 4 가사 검색 <2020 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.06 |
---|---|
Level 3 자물쇠와 열쇠 <2020 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.05 |
Level 2 문자열 압축 <2020 KAKAO BLIND RECRUITMENT > Python 3 (0) | 2021.09.05 |
Level 3 징검다리 건너기 <2019 카카오 인턴십> Python3 (0) | 2021.09.05 |
Level 4 무지의 먹방 라이브 <2019 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.02 |