[백준 Python Swift] 7490번 0 만들기

Cobugi·2021년 9월 29일
0

백준

목록 보기
19/21
post-thumbnail

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

// ...
profile
iOS Developer 🐢

0개의 댓글