답지 O


와 리얼 난 언제쯤이면 이런 문제 스스로 풀지 궁금하다.
- stack에 (면 해당 index 집어넣기
- )라면 (stack.pop(), index)를 쌍으로 index_stack에 넣기 (짝찌끼리 index)
- combination써서 하나씩 given에서 해당 인덱스를 ""로 괄호 빼주기
- 다뺏으면 result에 "".join
- set쓰고 sort해준뒤 result print
from itertools import combinations
given = list(input())
stack = []
idx_stack = []
result = []
for i, v in enumerate(given):
if v == "(":
stack.append(i)
elif v == ")":
idx_stack.append((stack.pop(), i))
for k in range(1, len(idx_stack) + 1):
c = combinations(idx_stack, k)
for j in c:
tmp = given.copy()
for k in j:
tmp[k[0]] = ""
tmp[k[1]] = ""
tmp = "".join(tmp)
if tmp not in result:
result.append(tmp)
for i in sorted(result):
print(i)