본문 바로가기

BOJ 알고리즘 (패캠)/자료구조, 구현

7490번: 0 만들기 (구현, 재귀) - Fastcampus

www.acmicpc.net/problem/7490

 

7490번: 0 만들기

각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다.

www.acmicpc.net

def recur(N, res, a=[]):
    if N == 1:
        res.append(a[:])
        return

    for op in (" ", "+", "-"):
        a.append(op)
        recur(N-1, res, a)
        a.pop()


T = int(input())
for _ in range(T):
    N = int(input())
    a = list(range(1, N + 1))

    res = []
    recur(N, res)

    for ops in res:
        exp = ""
        for i in range(N-1):
            exp += str(a[i]) + ops[i]
        exp += str(a[-1])
        if eval(exp.replace(" ", "")) == 0:
            print(exp)
    print()