코딩테스트/프로그래머스

[프로그래머스] [Level 2] [DFS/BFS] 타겟 넘버

박소민 2022. 9. 5. 22:28
타겟 넘버
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 내 풀이
    • 중복 순열 product 이용하여 나올 수 있는 +,- 경우의 수를 모두 구함
    • 경우의수를 모두 계산해보면서 target 값이 나오면 answer+=1
from itertools import product as p

def solution(numbers, target):
    signs=['+','-']
    sign_lst=list(p(signs,repeat=len(numbers)))
    answer =0
    for sign in sign_lst:
        sum=0
        for s,n in zip(sign, numbers):
            if s=='+':
                sum+=n
            else:
                sum-=n

        if sum == target:
            answer+=1
    return answer