비버놀로지

[BAEKJOON 백준] 2407 조합 (JAVA) 본문

ALGORITM/JAVA

[BAEKJOON 백준] 2407 조합 (JAVA)

KUNDUZ 2021. 9. 10. 17:11
728x90

https://www.acmicpc.net/problem/2407

 

2407번: 조합

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

www.acmicpc.net

문제

nCm을 출력한다.

입력

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

출력

nCm을 출력한다.

 

 

BigInteger을 활용을 해서 조합을 해결했습니다.

 

BigInteger을 사용하지 않고도 할 수 있는 방법이 있지않을까 찾아봐야하는 부분 같습니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		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());
		BigInteger bigN=BigInteger.ONE;
		BigInteger bigM=BigInteger.ONE;
		for (int i = 0; i < m; i++) {
			bigN=bigN.multiply(new BigInteger(String.valueOf(n-i)));
			bigM=bigM.multiply(new BigInteger(String.valueOf(i+1)));
		}
		System.out.println(bigN.divide(bigM));
	}
}

 

 

728x90
Comments