package study; // ì¡°í© : nCr = n-1Cr-1 + n-1Cr // ëì : https://gorakgarak.tistory.com/523?category=265216 public class Combination { public static int[] source; public static void main(String[] args) { int[] arr = new int[5]; source = new int[5]; for (int i = 0; i < 5; i++) { source[i] = 2 * i + 1; } combination(arr, 5, 4, 0, 0); } // index : ì í´ì§ë©´ r - 1, ìëë©´ r // target : ë°°ì´ì ë£ì ì íì, ì¦ íì target + 1 public static void combination(int[] arr, int n, int r, int index, int target) { if(r == 0) { // ì¢ ë£ ì¡°ê±´ print(arr, index); } else if (target == n) { // ì í©í ì¼ì´ì¤ ìì return; } else { arr[index] = source[target]; // ë°°ì´ì ì ì¥ëë ê° ì¡°ì ê°ë¥ combination(arr, n, r - 1, index + 1, target+1); combination(arr, n, r, index, target+1); } } public static void print(int[] arr, int length) { for (int i = 0; i < length; i++) { if(i == length - 1) { System.out.println(arr[i]); } else System.out.print(arr[i] + ","); } } }