#include <bits/stdc++.h>
using namespace std;
int solution(vector<int> numbers, int target) {
auto dfs = [&](auto &self, int idx, int cur_sum) -> int {
if (idx == numbers.size()) { // 끝까지 탐색한 경우
if (cur_sum == target) { // 현재 누적 합이 target과 같은 경우
return 1; // 카운트
}
return 0;
}
int cnt = 0;
cnt += self(self, idx + 1, cur_sum + numbers[idx]); // 탐색한 숫자를 더하는 경우
cnt += self(self, idx + 1, cur_sum - numbers[idx]); // 탐색한 숫자를 빼는 경우
return cnt;
};
int answer = dfs(dfs, 0, 0);
return answer;
}'PS' 카테고리의 다른 글
| 프로그래머스 92334 Python [신고 결과 받기] (0) | 2026.08.06 |
|---|---|
| 프로그래머스 87946 C++ [피로도] (0) | 2026.04.30 |
| 백준 BOJ 1941 C++ [소문난 칠공주] (0) | 2026.04.28 |
| 백준 BOJ 11000 C++ [강의실 배정] (0) | 2026.04.28 |
| 백준 BOJ 1931 C++ [회의실 배정] (0) | 2026.04.28 |