거북이개발자

[백준 7490] 0 만들기 본문

Algorithm(Python)/BaekJoon

[백준 7490] 0 만들기

류정식 2021. 1. 22. 12:36

0. 제목

  • 백준 7490 0 만들기

1. 문제

 

www.acmicpc.net/problem/7490

 

7490번: 0 만들기

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

www.acmicpc.net

 


2. 풀이

  • +, -, ' '을 재귀함수로 전체탐색후 리스트에 모든경우를 리스트에 담는다.
  • 각각의 수에 기호를 넣어준뒤 replace, eval함수로 계산한다.

3. 코드

import copy

def recursive(array, n):
    if len(array)==n:
        operators_list.append(copy.deepcopy(array))
        return
    
    array.append(' ')
    recursive(array, n)
    array.pop()
    
    
    array.append('+')
    recursive(array, n)
    array.pop()
    
    array.append('-')
    recursive(array, n)
    array.pop()
    
    
tc=int(input())

for _ in range(tc):
    operators_list=[]
    n=int(input())
    recursive([], n-1)
    
    integers=[i for i in range(1, n+1)]
    for operators in operators_list:
        string=""
        for i in range(n-1):
            string+=str(integers[i])+operators[i]
        string+=str(integers[-1])
        if eval(string.replace(" ", ""))==0:
            print(string)
    print()

'Algorithm(Python) > BaekJoon' 카테고리의 다른 글

[백준 1568] 새  (0) 2021.05.11
[백준 1543] 문서 검색  (0) 2021.05.11
[백준 2747]피보나치 수  (0) 2021.01.20
[백준 10989] 수 정렬하기3  (0) 2021.01.20
[백준 11650] 좌표 정렬하기  (0) 2021.01.19
Comments