[Python][프로그래머스][Level2] 타겟 넘버

[Python][프로그래머스][Level2] 타겟 넘버

코드

from itertools import product
def solution(numbers, target):
    answer = 0
    for pro in product([1,-1],repeat=len(numbers)):
        if sum([pro[i]*numbers[i] for i in range(len(numbers))])==target:
            answer+=1
    return answer

numbers의 길이는 20이하 이기 때문에 2**20 정도의 경우면 충분히 완전탐색으로 풀이가 가능하다.

모든 숫자들이 + 거나 - 이기 때문에 그냥 중복이 가능한 순열을 통해 +1을 곱하거나 -1을 곱하면 된다.

그 합이 target과 같은 경우를 더해주면 된다.

Discussion and feedback