타겟 넘버 본문

알고리즘_프로그래머스/기타 문제

타겟 넘버

giron 2021. 5. 18. 16:28
728x90

알고리즘 분류는 dfs/bfs 인 문제이다. level2문제로 전형적인 재귀 문제였다...!

바로 코드를 첨부하겠습니당

 

#include <string>
#include <vector>

using namespace std;

void dfs(vector<int> numbers, int target, int i,int& answer, int result){
    
    if(i == numbers.size()){
        if(result == target)answer++;   
        return;
    }
    
    dfs(numbers,target, i+1, answer, result+numbers[i]);
    dfs(numbers,target, i+1, answer, result-numbers[i]);
}
int solution(vector<int> numbers, int target) {
    int answer = 0;
    dfs(numbers, target, 0, answer, 0);
    return answer;
}

재귀 탈출 조건은 i가 최대 인덱스 범위를 넘어갔을 때, 즉 모든 numbers를 돌아봤을 때 결과가 target과 같다면 결과를 더해주고 return 해줍니다.

728x90
Comments