백준 문제풀이

11050. 이항계수 (자바, Java)

뮤츠 2022. 10. 24. 01:27

이항계수(조합) 입문 문제.

사실상 수학의 영역이라, 해당 개념을 모르면 익히고 오는걸 추천한다.

경우의 수, 순열, 팩토리얼, 조합, 이항계수 등만 알면 될것 같다.

사실 이 부분은 제일 중요한게 경우의 수다.

합의법칙과 곱의법칙이 제일 중요하다. 근본적인 개념에 해당되는 부분이라...

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	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 k = Integer.parseInt(st.nextToken());
		
		System.out.println(bc(n,k));
	}
	
	static int bc(int n, int k) {
		
		int npk = 1; // nPk 순열
		
		for (int i=n; i>n-k; i--) {
			npk = npk * i;
		}
		
		int kf = 1; // !k 팩토리얼
		
		for (int i=k; i>1; i--) {
			kf = kf * i;
		}
		
		return npk/kf;
	}

}