C, C++ 문제풀이
프로그래머스- 타겟넘버(DFS)
륵기
2020. 10. 21. 23:31
728x90
반응형
#include <string>
#include <vector>
using namespace std;
int cnt=0;
int DFS(int L, int s, vector<int> num,int t)
{
// 원소 개수
int n = num.size();
// 이진트리 깊이 == 원소개수 -> 재귀 멈추는 조건
if(L==n)
{
// total sum이 타겟값과 같다면?
if(s == t)
{
// 부분집합에 대한 갯수를 세는 것이기에 cnt++
cnt++;
}
}
else{
//종료조건이 안되면 계속 재귀 호출
DFS(L+1, s+num[L], num,t);
DFS(L+1, s-num[L],num,t);
}
return cnt;
}
int solution(vector<int> numbers, int target) {
int answer = DFS(0,0,numbers,target);
return answer;
}
728x90
반응형