조합 구하기(메모이제이션)

Changwook Yang·2023년 1월 21일

알고리즘 연습

목록 보기
12/41

조합의 경우의 수를 구하여라(메모이제이션)

nCr = n-1Cr-1 + n-1Cr

첫째 줄에 자연수 n r이 주어지고 조합의 수를 구하여라

ex)
5 3

출력
10

import java.util.Scanner;

public class Main {

    static int n, r;
    static int[][] combination;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        r = scanner.nextInt();
        combination = new int[n + 1][r + 1];
        System.out.println(combination(n, r));
    }

    private static int combination(int n, int r) {
        if (n == r || r == 0) return 1;
        else if (combination[n][r] > 0) return combination[n][r];
        else {
            int value = combination(n - 1, r - 1) + combination(n - 1, r);
            combination[n][r] = value;
            return value;
        }
    }
}
profile
멋있는 백엔드 개발자 / 꾸준히 의미있게!

0개의 댓글