Python
타겟넘버
엉덩이싸움
2024. 4. 22. 23:24
Description
n개의 음이 아닌 정수가 있다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 한다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수가 있다.
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
사용할 수 있는 n개의 숫자가 담긴 배열 numbers, 타겟 넘버 target이 입력이 될 때, 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 출력한다.
Input
첫째 줄은 주어지는 숫자의 개수 n (2 ≤ n ≤ 20)이다.
두번째 줄에는 배열 numbers의 원소(1이상 50이하인 자연수)들이 주어진다.
세번째 줄에는 타겟 넘버 traget(1≤ target ≤1000인 자연수)가 주어진다.
Output
숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 출력한다.
Sample Input 1
5
1 1 1 1 1
3
Sample Output 1
5
def solution(numbers, target):
data =[0]
for num in numbers:
res = []
for val in data:
res.append(val+num)
res.append(val-num)
data = res
return data.count(target)
n = int(input()) #size of numbers
numbers = list(map(int, input().split()))
target= int(input())
cnt = solution(numbers, target)
print(cnt)