-
728x90๋ฐ์ํ
์ฌ๊ท (Recurssion)
ํจ์ ๋ด๋ถ์์ ์ง์ ํน์ ๊ฐ์ ์ ์ผ๋ก ์๊ธฐ ์์ ์ ํธ์ถ
- Base Part : ์ฌ๊ท๋ฅผ ๋๋๋ ์กฐ๊ฑด์ ์ง๋ ํํธ
- Inductive Par : ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํํธ
์ฌ๊ท์ ํธ์ถ์ ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์์ ์คํ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ๋ฐ๋ณต์ ์ธ ํธ์ถ์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์๋์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ๊ธฐํ๋ค.
์์
ํฉํ ๋ฆฌ์ผ
int factorial(int n){if (n==1 || 0) return 1;elsereturn n*factorial(n-1);}Permutation
public class PermutationTest {static int N =3, R =4;static int[] numbers;static int[] input;static boolean[] isSelected;public static void main(String[] args) {input = new int[] {1,4,7,8};numbers = new int[R];isSelected = new boolean[N+1];permutation(0);}private static void permutation(int cnt) {//cnt == ๋ชฉํif(cnt ==R ) {System.out.println(Arrays.toString(numbers));return;}for(int i=1; i<=N;i++) {if(isSelected[i]) {continue;} //์ฌ์ฉ์ค์ธ์๋ฉด ๋ค์์๋กnumbers[cnt] =i;isSelected[i] =true;permutation(cnt+1);isSelected[i] = false;}}}Combination
public class Combination {public static void main(String[] ar){Combination ex = new Combination();int[] arr = { 1, 2, 3 };int n = arr.length;int r = 2;int[] combArr = new int[n];combination(combArr, n, r, 0, 0, arr);}public static void combination(int[] combArr, int n, int r, int index, int target, int[] arr){System.out.println("=> "+n+" "+r+" "+index+" "+target);if(r == 0){System.out.println(Arrays.toString(combArr));for(int i=0; i<index; i++)System.out.print(arr[combArr[i]] + " ");System.out.println();}else if(target == n){return;}else{combArr[index] = target;// (i) ๋ฝ๋ ๊ฒฝ์ฐ : r-1 , index +1combination(combArr, n, r-1, index+1, target+1, arr);// ์ ๋ฝ๋๊ฒฝ์ฐ -> r๊ณผ index ๊ทธ๋๋กcombination(combArr, n, r, index, target+1, arr);}}}728x90๋ฐ์ํ'๐ STUDY > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LinkedList ๋ฅผ ์ด์ฉํด์ Stack ๊ตฌํ (0) 2022.05.18 1์ฐจ์ ๋ฐฐ์ด (0) 2022.05.18 Tree (0) 2022.05.18 List (0) 2022.05.18 QUEUE (0) 2022.05.18