본문 바로가기
C++ 코딩 문제 풀이/프로그래머스

[Programmers] 타겟 넘버

by 섬댕이 2024. 1. 7.

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

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

programmers.co.kr

 


 

문제 해결 과정

착안

주어지는 숫자들을 하나씩 순차적으로 더하거나 뺀 결과값을 구하는 재귀 함수를 만들어 문제를 해결한다.

 

구현

[스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~

더보기
#include <vector>

using namespace std;

void Add(const vector<int>& v, const int& t, int& cnt, int i, int sum)
{
    if (i == v.size())
    {
        if (t == sum)
            cnt++;
        return;
    }
    
    Add(v, t, cnt, i + 1, sum + v[i]);
    Add(v, t, cnt, i + 1, sum - v[i]);
}

int solution(vector<int> numbers, int target)
{
    int answer = 0;
    Add(numbers, target, answer, 1,  numbers[0]);
    Add(numbers, target, answer, 1, -numbers[0]);
    return answer;
}

 

실행 결과

댓글