https://school.programmers.co.kr/learn/courses/30/lessons/43165
흠 지금까지 DFS BFS 문제는 맵에서 상하좌우 움직이면서 막 visited 검사하구..
그런 것만 유형인 줄 알았는데 이런 문제도 유형에 속한다는 것을 알았다.
이렇게 말이다!
💻 소스 코드
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> v;
int cnt = 0;
void dfs(vector<int> numbers,int target, int idx, int values);
int solution(vector<int> numbers, int target) {
dfs(numbers, target, 0, 0);
return cnt;
}
void dfs(vector<int> numbers,int target, int idx, int values)
{
if (idx == numbers.size() && values == target)
{
cnt++;
return;
}
else if (idx == numbers.size()) return;
dfs(numbers, target, idx+1, values + numbers[idx]);
dfs(numbers, target, idx+1, values - numbers[idx]);
}