[JAVA][BOJ][S3] 2407. 조합
728x90

문제

nCm을 출력한다.

입력

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

출력

nCm을 출력한다.

풀이

코드 자체는 간단하게 풀 수 있지만, 입력 숫자가 크기 때문에 long도 넘어서기 때문에 BigInteger를 사용해야 한다

코드

import java.io.*;
import java.math.BigInteger;
import java.util.*;

public class S3_2407_조합 {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        m = Math.min(n-m, m);
        
        BigInteger ans = BigInteger.ONE;
        for (int i = 1; i <= m; i++) {
			ans = ans.multiply(new BigInteger(String.valueOf(n - i + 1))).divide(new BigInteger(String.valueOf(i)));
		}
        
        System.out.println(ans);
    }

}

결과

 

#자바 #java #boj #백준 #알고리즘

728x90