본문 바로가기

PS/프로그래머스

[프로그래머스 LV 2] 괄호 변환 (파이썬/python)

728x90

https://programmers.co.kr/learn/courses/30/lessons/60058

 

코딩테스트 연습 - 괄호 변환

카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를

programmers.co.kr

카카오 2랩은 진짜 어려운것같다 ..

사실 처음에 문제이해도 잘 못 했는데

계속 읽다보니까 문제이해됐음

 

구현이 진짜 어려웠다 구현은 조금 코드 참고해서 풀었음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 문자열 가르기
def separate(p):
    global answer
    if len(p) == 0:
        return ""
    n1 = 0  # (의 갯수
    n2 = 0  # )의 갯수
 
    for i in range(len(p)):
        if p[i] == '(':
            n1 += 1
        else:
            n2 += 1
        if n1 == n2:
            if p[i] == ')':  # 마지막 괄호가 닫힌 괄호면 올바른 괄호 문자열
                return p[:i + 1+ separate(p[i + 1:])
            else:  # u가 균형잡힌 괄호 문자열일때
                return balance_case(p[:i + 1], separate(p[i + 1:]))
 
 
# 4번 조건
def balance_case(u, v):
    empty_str = '(' + v + ')'
    u = u[1:-1]
    print(u)
    for in_u in u:
        if in_u == '(':
            empty_str += ')'
        else:
            empty_str += '('
    return empty_str
 
 
def solution(p):
    return separate(p)
cs
728x90