728x90
반응형
문제
정답
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 K = Integer.parseInt(st.nextToken());
System.out.print(factorial(N) / (factorial(N-K) * factorial(K)));
}
static int factorial(int num){
// 0!은 1이라고 합니다. 한참 헤맸어요..ㅎ
if(num <= 1) {
return 1;
}
return num * factorial(num - 1);
}
}
이항 계수도 어디선가 들어는 본 거 같지만 기억은 안나서
찾아봤는데 조합을 구하라는 거더군요!
근데 조합도 기억이 안나...ㅎ
그래서 조합을 구하는 공식도 찾아본 결과
nCr = n! / {(n-r)! * k!}
입니다. 전 굳이 수학 공식을 증명까지 하고 싶지는 않기에...
0!은 1이라는 점 유의해서 코드 작성해주시면 될 거 같습니다 :)
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 11650번 좌표 정렬하기 (3) | 2024.10.27 |
---|---|
[백준/Java] 10814번 나이순 정렬 (0) | 2024.10.27 |
[백준/Java] 2609번 최대공약수와 최소공배수 (1) | 2024.10.16 |
[백준/Java] 1259번 팰린드롬수 (1) | 2024.10.16 |
[백준/Java] 30802번 웰컴 키트 (1) | 2024.10.13 |