알고리즘(algorithm)feat.JAVA - 조합

장선웅·2022년 7월 20일
0

자바(Java)의 알고리즘 중에 조합에 대해 알아보도록 하자.


  1. 조합(Combonation) - 서로 다른 n개 중에서 r개를 선택하는 경우의 수(순서X,중복X) -> nCr => nPr / r!
  2. 중복 조합 - 서로 다른 n개 중에서 r개를 선택하는 경우의 수(순서X,중복O) => n+r-1Cr

public class Main {

    static int Combination(int n, int r) {
        int pResult = 1;
        int rResult = 1;
        for (int i = n; i >=n-r+1; i--) {
            pResult *= i;
        }
        for (int i = 1; i <= r ; i++) {
            rResult *= i;
        }
        return pResult / rResult;
    }

    public static void main(String[] args) {
		//조합(Combonation) - 서로 다른 n개 중에서 r개를 선택하는 경우의 수(순서X,중복X) - nCr = nPr / r!
        System.out.println("== 조합 ==");

        int n = 4;
        int r = 2;

        int pResult = 1;
        int rResult = 1;
        for (int i = n; i >=n-r+1; i--) {
            pResult *= i;
        }
        for (int i = 1; i <= r ; i++) {
            rResult *= i;
        }
        System.out.println("결과 = " + (pResult / rResult));





		//중복 조합 - 서로 다른 n개 중에서 r개를 선택하는 경우의 수(순서X,중복O) - n+r-1Cr
        System.out.println("== 중복 조합 ==");
        n = 2;
        r = 3;

        System.out.println("결과 : " + Combination(n+r-1,r));
    }
}
//결과값
== 조합 ==
결과 = 6
== 중복 조합 ==
결과 : 4
profile
개발을 꿈꾸는 초짜

0개의 댓글