반응형
import java.io.*;
import java.util.*;
public class Main {
static int n, s, r;
static int[] num;
static int[] arr;
static boolean[] visited;
static int count = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
s = Integer.parseInt(st.nextToken());
arr = Arrays.stream(br.readLine().split(" "))
.mapToInt(Integer::parseInt)
.toArray();
visited = new boolean[n];
for (int i=1; i<=n; i++){
r = i;
num = new int[r];
bt(0, 0);
}
System.out.print(count);
}
static void bt(int depth, int start){
if (depth == r){
if (Arrays.stream(num).sum() == s) count++;
return;
}
for (int i=start; i<arr.length; i++){
if (!visited[i]){
visited[i] = true;
num[depth] = arr[i];
bt(depth+1, i+1);
visited[i] = false;
}
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 Level1 - 두 개 뽑아서 더하기 [ javascript ] (0) | 2021.01.18 |
---|---|
백준 1759번 암호 만들기 [ Java ] (0) | 2021.01.15 |
백준 6603 로또 [ Java ] (0) | 2021.01.14 |
백준 15666번 N과 M (12) [ Java ] (0) | 2021.01.14 |
백준 15665번 N과 M (11) [ Java ] (0) | 2021.01.14 |