관리 메뉴

기억을 위한 기록들

특정 수 만들기 (DFS) 본문

Coding Test - cpp/DFS

특정 수 만들기 (DFS)

에드윈H 2021. 1. 8. 14:58
#include <iostream>
using namespace std;
int n;
int result;
int arr[10];
int cnt = 0;
void D(int L, int sum)
{
	if (L == n) 
	{
		if (result == sum) 
		{
			cnt++;
		}
	}
	else {
		D(L + 1, sum + arr[L]);
		D(L + 1, sum);
		D(L + 1, sum - arr[L]);
	}
}

int main()
{
	cin >> n;
	cin >> result;
	int input;

	for (int i = 0; i < n; i++)
	{

		cin >> input;

		arr[i] = input;
	}

	D(0, 0);


	if (cnt == 0)
	{
		cout << -1 << endl;
	}
	cout << cnt << endl;

	return 0;
}