Python3/프로그래머스

2022.03.01 [프로그래머스] (python 파이썬) 타겟 넘버

ian's coding 2022. 3. 1. 20:04
728x90
반응형

 

https://programmers.co.kr/learn/courses/30/lessons/43165

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr

 


풀이

dfs를 활용하여 각 배열의 부호가 +,-일때의 경우를 생각해서 코드를 작성했다.

dfs의 파라미터는 들어간 숫자의 갯수, 들어간 숫자의 합으로 지정했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(numbers, target):
    answer=0
    def dfs(a,sum):
        nonlocal answer
        if a==len(numbers):
            if sum==target:
                answer+=1
            return
 
        dfs(a+1,numbers[a]+sum)
        dfs(a+1,-numbers[a]+sum)
 
    dfs(0,0)
    return answer
cs

 

 

 

 

728x90
반응형