문제 링크
코드
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))
리뷰
- 문제에서 시키는 대로만 하면 풀릴 것이라고 생각해서 바로 코드 작성을 시작했는데 풀다보니 햇갈렸다.
결국 차분하게 수도코드부터 작성하고 다시 풀었더니 쉽게 풀렸다. 쉬워 보이는 문제라도 꼭 수도코드를 먼저 작성하는 습관들 들여야겠다.

- 아무래도 자주 사용하는 언어가 파이썬이 아니다 보니 문자열 처리와 같은 문법이 조금 약한 것 같다. 익숙하지 않은 문법들을 정리해두고 익숙해질 때까지 연습해야겠다.