프로그래밍/백준

백준 2407번 : 조합

GaeGim 2022. 8. 30. 01:03
반응형

[레벨4]

 

· 문제

nCm을 출력한다.

 

· 입력

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

 

· 출력

nCm을 출력한다.

 

· 풀이

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Main {
	
	public static void main(String[] args) throws Exception {
		//자바 입출력 함수.
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       		//입력값을 공백 기준으로 나눠 문자열형 배열에 저장.
		String[] str = br.readLine().split(" ");
		
			//배열에 나뉜 문자열을 정수형으로 변환해 저장.
        	int n = Integer.parseInt(str[0]);
        	int m = Integer.parseInt(str[1]);
        
        	//n의 범이가 최대 100이기 때문에 숫자가 매우 커 BigInteger 자료형을 사용.
        	BigInteger n1 = BigInteger.ONE;
        	BigInteger n2 = BigInteger.ONE;

        	//조합 공식 : nCr = n! / (n-r)! * r! 적용.
        	for (int i = 0; i < m; i++) {
            	n1 = n1.multiply(new BigInteger(String.valueOf(n - i)));	//분자.
           		n2 = n2.multiply(new BigInteger(String.valueOf(i + 1)));	//분모.
        	}

        	BigInteger answer = n1.divide(n2);	//나누기.
        	System.out.println(answer);
	}
}
반응형