본문 바로가기
PROGRAMMERS

[프로그래머스] 괄호 변환 (Level 2)

by 나른한 사람 2021. 4. 24.

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

 

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

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

programmers.co.kr

[프로그래머스] 괄호 변환 (Level 2)

구현 / 재귀

 

문제를 정확히 읽고 이해하는 연습이 더 필요하다.

4-4. u의 첫 번째와 마지막 문자를 제거하고, 나머지 문자열의 괄호 방향을 뒤집어서 뒤에 붙입니다.

이 문장을 순서를 뒤집는걸로 이해해서 쓸데없이 시간을 낭비했다.

 

<파이썬 코드>

from collections import deque
def get_uv(p):
    p = deque(p)
    s,tmp = deque(),0
    while not s or tmp!=0:
        s.append(p.popleft())
        tmp += 1 if s[-1]=='(' else -1
    return ''.join(s),''.join(p)
def solution(p):
    swap={'(':')',')':'('}
    if p == '': return p
    u,v = get_uv(p)
    if u[0]=='(':
        return u+solution(v)
    else:
        return '('+solution(v)+')'+''.join([swap[i] for i in u[1:-1]])

댓글