전공공부
[BOJ_2407] 조합 본문
설명
조합의 경우의 수를 출력하기 위해서 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 |