https://school.programmers.co.kr/learn/courses/30/lessons/43165
구현 아이디어 1분 구현 8분
재귀 넘길 때 sum을 넘기게 바꿀 예정.
#include <string>
#include <vector>
// +, - 로 구성된 배열을 만들면 된다.
int check[20], result;
using namespace std;
void DFS(int L, int e, const vector<int>& numbers, int target)
{
if(L == e)
{
int sum = 0;
for(int i = 0; i < e; ++i)
sum += (numbers[i] * check[i]);
if(target == sum) ++result;
}
else
{
check[L] = 1;
DFS(L + 1, e, numbers, target);
check[L] = -1;
DFS(L + 1, e, numbers, target);
}
}
int solution(vector<int> numbers, int target) {
int answer = 0;
DFS(0, numbers.size(), numbers, target);
return answer = result;
}
#include <string>
#include <vector>
// +, - 로 구성된 배열을 만들면 된다.
int check[20], result;
using namespace std;
void DFS(int L, int e, int sum, const vector<int>& numbers, int target)
{
if(L == e)
{
if(target == sum) ++result;
}
else
{
DFS(L + 1, e, sum + numbers[L], numbers, target);
DFS(L + 1, e, sum - numbers[L], numbers, target);
}
}
int solution(vector<int> numbers, int target) {
int answer = 0;
DFS(0, numbers.size(), 0, numbers, target);
return answer = result;
}
안녕하세요 :) 국비지원 부트캠프 엘리스트랙입니다! 오늘도 개발 공부 열심히 하고 계시군요! 멋지십니다 :)
혹시 신입으로 개발 공부하면서 기술면접에 대한 대비가 막막하시다면, 이번 기술면접 특강도 관심 가져보시면 좋을 것 같아 댓글로 행사 안내드려요~
프론트/ 백엔드 모두 실력있고, 실제 면접관으로 활동하고 계신 개발자 코치님께서 진행하시니 참여해 보세요> https://festa.io/events/4389
그럼 오늘도 화이팅입니다!🙇🏻♀️💪🏻