baekjoon, programmers

programmers 타겟 넘버

leon-mcd 2024. 7. 28. 16:35

programmers

level2 타겟 넘버

문제 설명

프로그래머스 로고
위의 이미지를 클릭하시면 해당 문제로 이동합니다.

#include <string>
#include <vector>

using namespace std;

int dfs(vector<int> nums, int tar, int cnt, int sum){
    int target_reached = 0;
    if(cnt != nums.size()-1){
        target_reached+=dfs(nums, tar, cnt+1, sum+nums[cnt]);
        target_reached+=dfs(nums, tar, cnt+1, sum-nums[cnt]);
    }
    else{
        if(tar==sum+nums[cnt]) target_reached++;
        else if(tar==sum-nums[cnt]) target_reached++;
    }

    return target_reached;
}

int solution(vector<int> numbers, int target) {
    int answer = 0;
    answer = dfs(numbers, target, 0, 0);
    return answer;
}

해결 과정

dfs를 이용하면 간단하게 해결할 수 있는 문제였다. 함수에 전달하는 인자에 대해 신경써서 segmentation fault가 나오지 않도록 주의해야겠다.

'baekjoon, programmers' 카테고리의 다른 글

programmers 숫자 변환하기  (0) 2024.09.02
programmers 프로세스  (0) 2024.07.26
programmers 튜플  (0) 2024.07.25