No Rules Rules

타겟 넘버 (feat. 프로그래머스, 43165번) 본문

생활/코테

타겟 넘버 (feat. 프로그래머스, 43165번)

개발하는 완두콩 2022. 7. 23. 20:44
728x90
반응형

타겟 넘버
https://programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

반응형
// woohyeon.kim
#include <string>
#include <vector>

using namespace std;

int answer;
void dfs(const vector<int>& numbers, const int& target, int index, int sum, bool sign)
{
    if(sign)
        sum += numbers[index++];
    else
        sum -= numbers[index++];
    if(numbers.size() != index)
    {
        dfs(numbers, target, index, sum, true);
        dfs(numbers, target, index, sum, false);
    }
    else
    {
        if(sum == target)
            ++answer;
    }
}

int solution(vector<int> numbers, int target) {
    answer = 0;
    int sum = 0;
    dfs(numbers, target, 0, sum, true);
    dfs(numbers, target, 0, sum, false);
    return answer;
}
// *&)*@*

그래프를 모두 탐색하여 연산했을 경우의 결과가 예상한 target과 같은지를 보면 됩니다.

다만 그래프가 처음부터 주어진 것이 아니라, +와 - 각각을 만들어야 한다는 차이만 있을 뿐입니다.

728x90
반응형
Comments