[PS] 괄호 변환

owo·2023년 1월 30일
0

PS

목록 보기
9/25

문제 링크

코드

def solution(p):
    return seperate(p)


def seperate(string):
    if string == '':
        return string

    correct = True if string.startswith('(') else False
    idx = 0
    diff = 1 if correct else -1
    while diff:
        idx += 1
        diff += 1 if string[idx] == '(' else -1

    if correct:
        return string[:idx + 1] + seperate(string[idx + 1:])
    else:
        return f'({seperate(string[idx + 1:])}){flip(string[1:idx])}'


def flip(string):
    return "".join(map(lambda x: '(' if x == ')' else ')', string))

리뷰

  • 문제에서 시키는 대로만 하면 풀릴 것이라고 생각해서 바로 코드 작성을 시작했는데 풀다보니 햇갈렸다.
    결국 차분하게 수도코드부터 작성하고 다시 풀었더니 쉽게 풀렸다. 쉬워 보이는 문제라도 꼭 수도코드를 먼저 작성하는 습관들 들여야겠다.
  • 아무래도 자주 사용하는 언어가 파이썬이 아니다 보니 문자열 처리와 같은 문법이 조금 약한 것 같다. 익숙하지 않은 문법들을 정리해두고 익숙해질 때까지 연습해야겠다.

0개의 댓글