7490번 0 만들기
풀이 방법
- 재귀적으로 숫자 사이에 들어갈 연산자 배열을 만든다
- 연산자의 개수는 숫자 n 보다 1만큼 작은 (n-1)개이다
- 연산자의 배열에 연산자들을 append 할때 deepcopy해야한다
- 문쟈열에 숫자를 추가하고 그 사이에 연산자를 추가한다
- 파이썬의
eval()
함수를 사용하여 문자열 자체를 연산한다
- swift로 푸는 방법은 고민해보겠다
풀이
Python
import copy
def make_operator(array, n):
if len(array) == n:
operator_list.append(copy.deepcopy(array))
return
array.append(" ")
make_operator(array, n)
array.pop()
array.append("+")
make_operator(array, n)
array.pop()
array.append("-")
make_operator(array, n)
array.pop()
test_case = int(input())
for _ in range(test_case):
n = int(input())
operator_list = []
make_operator([], n-1)
integers = [i for i in range(1, n + 1)]
for operator in operator_list:
string = ""
for i in range(n-1):
string += str(integers[i])+operator[i]
string += str(integers[-1])
if eval(string.replace(" ", "")) == 0:
print(string)
print()
Swift