[백준/C++] 1182번 부분수열의합

최대 1 분 소요

1.문제 링크

부분수열의합



2. 풀이 전 계획과 생각

  • 백트래킹 이용



3. 풀이

#include<iostream>
#include<vector>
using namespace std;

int n,s;
vector<int> v;
int cnt=0;

void dfs(int index, int sum){
	if(index==n) return;
	
	if(sum+v[index]==s) cnt++;
	
	dfs(index+1, sum);
	
	dfs(index+1, sum+v[index]);
}

int main(){
	cin>>n>>s;

	for(int i=0;i<n;i++){
		int temp;
		cin>>temp;
		v.push_back(temp);
	}

	dfs(0,0);
	
	cout<<cnt;
}



4. 풀이하면서 고민했던 점



5. 문제를 풀고 알게된 개념 및 소감