Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2407] 조합 본문

Study/Problem Solving

[BOJ_2407] 조합

monitor 2024. 2. 19. 06:31

설명


조합의 경우의 수를 출력하기 위해서 N!/(N-M!)*M! 을 구현하였으며 100C5와 같이 long의 타입 길이를 침범하는 케이스가 존재하여 BigInteger를 이용하여 풀었습니다.

코드


package BOJ.Dynamic_Programming;

import java.math.BigInteger;
import java.util.Scanner;

public class BOJ_2407 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();

        BigInteger sum = new BigInteger("1");
        BigInteger div = new BigInteger("1");

        for(int i = 0; i < M; i++) {
            sum = sum.multiply(new BigInteger(String.valueOf(N-i))); //이미 (N-M)! 전까지 수행해서 약수처리 되었다.
            div = div.multiply(new BigInteger(String.valueOf(i+1)));
        }
        System.out.println(sum.divide(div));
    }
}

 

 

2407번: 조합

n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_2156] 포도주 시식  (0) 2024.02.21
[BOJ_1890] 점프  (0) 2024.02.21
[BOJ_1010] 다리놓기  (0) 2024.02.14
[BOJ_2748] 피보나치 수열2  (1) 2024.02.13
[BOJ_1507] 궁금한 민호  (0) 2024.02.12