https://www.acmicpc.net/problem/7490
from itertools import product
T = int(input())
for t in range(T):
N = int(input())
graph = [ i for i in range(1,N+1)]
B = [' ','+','-']
B_Per = list(product(B,repeat = N-1))
for i in B_Per:
ans = str(graph[0])
for j in range(len(i)):
if i[j]=='+' or i[j]=='-':
ans += i[j]
else:
ans += ''
ans += str(graph[j+1])
check_num = eval(ans)
if check_num == 0:
for k in range(len(i)):
print(graph[k],end='')
print(i[k], end='')
print(graph[-1])
print()
연산해야되는 숫자가 작아서 중복순열을 이용해 풀었다.
eval()
함수는 괄호에 오는 문자열을 숫자처럼 계산해주는 함수이다.