import copy
def func(arr, n):
if len(arr) == n:
operator_array.append(copy.deepcopy(arr))
return
arr.append(" ")
func(arr, n)
arr.pop()
arr.append("+")
func(arr, n)
arr.pop()
arr.append("-")
func(arr, n)
arr.pop()
test_case = int(input())
for _ in range(test_case):
n = int(input())
operator_array = []
integer = [i for i in range(1,n+1)]
func([], n-1)
for operator in operator_array:
total = ""
for i in range(n-1):
total += str(integer[i]) + operator[i]
total += str(integer[-1])
total = total.replace(" ","")
if eval(total) == 0:
print(total)
깊은 복사(deep copy) : 내부의 객체까지 모두 새롭게 copy 되는 것 # copy.deepcopy 메소드 사용
eval() : 문자열을 계산해주는 메소드
'알고리즘 > 백준 (Pyhthon)' 카테고리의 다른 글
[알고리즘] 백준 1543 문서검색 / python (0) | 2020.02.03 |
---|---|
[알고리즘] 백준 2110 공유기 설치 (0) | 2020.02.02 |
[알고리즘] 백준 1074 Z (0) | 2020.01.30 |
[알고리즘] 백준 2747 피보나치 수 (0) | 2020.01.30 |
[알고리즘] 백준 10989 수 정렬하기 / python (0) | 2020.01.30 |