LEVEL :
Level2
문제 요약 :
2020년 카카오톡 코딩테스트 제출 문제이다.
주어진 괄호들을 조건을 따라 쌍을 맞추는 문제이다
해결 방안 :
그냥 주어진 단계별로 다 구현하면 해결 할 수 있는 문제였다.
Solution
def seperate(ori) :
if not ori :
return ""
fCnt , lCnt = 0,0
for i in range(len(ori)) :
if ori[i] == '(' :
fCnt += 1
else :
lCnt += 1
if fCnt == lCnt and fCnt != 0 and lCnt != 0 :
break
return (ori[:i+1],ori[i+1:])
def check_str(s) :
if not s :
return False
check = 0
for i in range(len(s)) :
if s[i] == '(' :
check +=1
else :
check -= 1
if check < 0 :
return False
return True
def reverse_str(ori) :
new = list(ori)
for i in range(len(new)) :
if new[i] == "(" :
new[i] = ")"
else :
new[i] = "("
return "".join(new)
def make_str(p) :
tuple_str = seperate(p) #step1, #step2
if not tuple_str :
return ""
res = ""
u,v = tuple_str
if check_str(u) == True : #step3
res = u + make_str(v)
return res
else : #step4
res = "(" + make_str(v) + ")" + reverse_str(u[1:-1])
return res
def solution(p):
answer = ''
answer = make_str(p)
return answer
프로그래머스 : https://programmers.co.kr/learn/courses/30/lessons/60058