Dev.baelanche

[백준 1182] 부분수열의 합 본문

Data Structure & Algorithm/PS - JAVA

[백준 1182] 부분수열의 합

baelanche 2019. 5. 29. 22:19
반응형

 

배열의 최대길이가 20이므로 전 구간을 완전탐색한다.

 

처음에 좀 헤맸는데 재귀를 쓰라는 힌트를 보고 풀었다.

메모이제이션 기법만 안썼지 구현방법은 dp 와 다를게 없다.

 

 

public class Main {
    
    static int n;
    static int s;
    static int a[];
    static int cnt = 0;
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        n = sc.nextInt();
        s = sc.nextInt();
        a = new int[n];
        for(int i=0; i<n; i++)
            a[i] = sc.nextInt();
        
        recursive(0, 0);
        System.out.println(cnt);
    }
    
    public static void recursive(int idx, int sum) {
        if(idx >= n) return;
        sum += a[idx];
        if(sum == s) cnt++;
        
        recursive(idx + 1, sum - a[idx]);
        recursive(idx + 1, sum);
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 10610] 30  (0) 2019.05.31
[백준 14502] 연구소  (0) 2019.05.29
[백준 11004] K번째 수  (0) 2019.05.29
[백준 1181] 단어 정렬  (0) 2019.05.29
[백준 2959] 거북이  (0) 2019.05.28
Comments