[백준 1182] 부분집합의 합
Algorithm/백준(BOJ)

[백준 1182] 부분집합의 합

반응형

[백준 1182] 부분집합의 합


문제 링크 : https://www.acmicpc.net/problem/1182




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;
 
public class 백준1182 {
    
    static int cnt = 0;
 
    public static void subset(int[] set, int size, int n, int[] arr, int index, int s) {
        
        if(n == index) {
            int sum = 0;
            for (int i = 0; i < size; i++) {
                sum += set[i];
            }
            
            if(size != 0) {
                if(sum == s) {
                    cnt++;
                }
            }
            return;
        }
        
        set[size] = arr[index];
        subset(set, size+1, n, arr, index+1, s);
        subset(set, size, n, arr, index+1, s);
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        int S = sc.nextInt();
        
        int[] arr = new int[N+1];
        int[] set = new int[21];
        for (int i = 0; i < N; i++) {
            arr[i] = sc.nextInt();
        }
        
        subset(set, 0, N, arr, 0, S);
        System.out.println(cnt);
    }
 
}
cs


반응형