{1, 2, 3, 4} 에서 k개의 숫자 조합을 구하기
static void combination(int[] arr, List<Integer> comb, int start, int n, int k) {
if (k == 0) {
System.out.println(comb);
return;
}
for (int i = start; i < n; i++) {
comb.add(arr[i]);
combination(arr, comb, i + 1, n, r - 1);
comb.remove(comb.size() - 1);
}
}
public static void main(String[] args) throws IOException {
int[] arr = {1, 2, 3, 4};
for (int i = 1; i <= arr.length; i++) {
System.out.println(i + "개 조합 구하기");
combination(arr, new ArrayList<>(), 0, arr.length, i);
System.out.println();
}
}
1개 조합 구하기
[1]
[2]
[3]
[4]
2개 조합 구하기
[1, 2]
[1, 3]
[1, 4]
[2, 3]
[2, 4]
[3, 4]
3개 조합 구하기
[1, 2, 3]
[1, 2, 4]
[1, 3, 4]
[2, 3, 4]
4개 조합 구하기
[1, 2, 3, 4]