알고리즘

[백준/재귀/C++] 2003번 수들의합2

데메즈 2023. 1. 11. 09:43
728x90
반응형

https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

#include <bits/stdc++.h>

using namespace std;

int n, m;
int arr[10001];
int result = 0;

void solve(int index, int tot){ // 시작 인덱스, 원소 합
    if(index>n) return;
    if(tot == m){
        result++;
        return;
    }

    solve(index+1, tot+arr[index+1]);
}

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> m;
    for(int i=0; i<n; i++){
        cin >> arr[i];
    }

    for(int i=0; i<n; i++){
        solve(i, arr[i]);
    }

    cout << result;

    return 0;
}
728x90
반응형