[백준] 1182번

Jeanine·2022년 3월 29일
0

baekjoon

목록 보기
46/120
post-thumbnail

💻 C++ 기반

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

#include <cstdio>

#define MAX_N 21

using namespace std;

int N, S;
int cnt = 0;
int numbers[MAX_N];

void func(int K, int total)
{
    if (K == N)
    {
        if (total == S)
        {
            cnt++;
        }
        return;
    }

    func(K + 1, total);
    func(K + 1, total + numbers[K]);
}

int main()
{
    scanf("%d %d", &N, &S);
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &numbers[i]);
    }
    func(0, 0);
    if (S == 0)
    {
        cnt--; // 공집합 제외
    }
    printf("%d", cnt);
    return 0;
}
profile
Grow up everyday

0개의 댓글