#include <string>
#include <vector>
#include <queue>
using namespace std;
int result = 0;
void DFS(vector<int> numbers, int target, int sum, int count);
int solution(vector<int> numbers, int target) {
DFS(numbers, target, 0, 0);
int answer = result;
return answer;
}
void DFS(vector<int> numbers, int target, int sum, int count)
{
if(count == numbers.size())
{
if(sum == target) result++;
return;
}
DFS(numbers, target, sum + numbers[count], count + 1);
DFS(numbers, target, sum - numbers[count], count + 1);
}
풀이
- 숫자를 모두 사용하여 수식을 완성한다.
- 숫자를 모두 사용했을때 총합이 target과 같은지 확인한다.
- 같다면 몇개인지 하나씩 추가해준다.
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 모의고사 완전탐색 (0) | 2021.04.21 |
---|---|
[C++] 프로그래머스 네트워크 DFS, BFS (0) | 2021.04.19 |
[C++] 프로그래머스 H-index (0) | 2021.01.04 |
[C++] 프로그래머스 가장 큰 수 (0) | 2020.12.30 |
[C++] 프로그래머스 K 번째 수 (0) | 2020.12.08 |