코딩 테스트
프로그래머스 타겟 넘버
__sapar
2024. 3. 4. 18:13
Dfs 사용 시 for 문 안씀 생각. for 문을 쓴다면 모든 경우를 확인할 경우
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> num;
vector<bool> visited;
int tarNum;
int DfsSum(int index, int sum)
{
int ans = 0;
if(index == num.size())
{
if(sum == tarNum)
{
return 1;
}
return 0;
}
ans += DfsSum(index + 1, sum + num[index]);
ans += DfsSum(index + 1, sum - num[index]);
return ans;
}
int solution(vector<int> numbers, int target) {
int answer = 0;
tarNum = target;
num = numbers;
visited = vector<bool>(numbers.size(), false);
answer += DfsSum(1, numbers[0]);
answer += DfsSum(1, -numbers[0]);
return answer;
}