알고리즘/프로그래머스문제풀이

[Python/프로그래머스]괄호 변환_구현

개발자 덕구🐾 2022. 10. 12. 21:01
728x90

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

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

 

문제도 잘 이해가 안됐고 

어떻게 구현할지 감도 잘안왔다...😓

이번에 풀고 익혀야지!!

 

 

 

 

코드 : 

# u,v로 나누기
def divide(p) :
    open_p = 0
    close_p = 0
    for i in range(len(p)) :
        if p[i] == '(' : open_p+=1 
        else : close_p +=1 
        # 같아지는 순간 
        # u는 균형잡힌 괄호 문자열 
        if open_p == close_p :
            return p[:i+1], p[i+1:]
# 해당 문자열이 올바른 괄호 문자열인지 확인 
def check(u) :
    stack = []
    for p in u :
        if p =='(' :
            stack.append(p)
        else :
            if not stack :
                return False 
            stack.pop()
    return True 
    
def solution(p):
    answer = ''
    if not p :return ""
    u,v = divide(p)
    
    # u가 올바른 경우 
    if check(u) :
    	#  재귀
        return u + solution(v)
    else :
        answer = '('
        answer += solution(v)
        answer += ')'
        
        for p in u[1:len(u)-1] :
            if p =='(' : 
                answer += ')'
            else : answer += '('
        return answer

 

정말....그냥 문제대로 구현하면 되는 문제다. 

문제 구현하는 걸 두려워하지 말고 자신감있게 구현해보자 

 

 

 

 

 

 

 

 

참고 풀이 :

https://jokerldg.github.io/algorithm/2021/05/22/parentheses-change.html

 

프로그래머스 괄호 변환 (python 파이썬) - Tech

프로그래머스 괄호 변환 (python 파이썬) May 22, 2021

jokerldg.github.io

 

 

반응형