January 08, 2022
백준 문제 링크 : https://www.acmicpc.net/problem/2407
순열 조합의 식을 기억해야한다.
nCm = n-1Cm + n-1Cm-1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;
//BigInteger에 대해 공부하기
public class B_2407 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n, m;
StringTokenizer st = new StringTokenizer((br.readLine()));
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
BigInteger[][] dp = new BigInteger[101][101];
dp[1][0] = dp[1][1] = BigInteger.ONE;
for(int i=0; i<101; i++){
for(int j=0; j<=i; j++){
if(i == j || j == 0){
dp[i][j] = BigInteger.ONE;
}
else{
dp[i][j] = dp[i-1][j].add(dp[i-1][j-1]);
}
}
}
System.out.println(dp[n][m]);
}
}
long으로 커버가 안되는 부분은 BigInteger라는 클래스르 사용해야 함을 알게 되었다… 근데 정말 마음에 안든다. 왜 java는 long long이 없는것인가…?… 익혀야지… ㅎㅎ