[ Baekjoon ] 11050번 ( Bronze I ) : 이항 계수 1

1. Problem 📃

[ =이항 계수 1 ]

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


[ 문제 ]


2. Input ⌨️

[ 입력 ]

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ N)


3. Output 🖨

[ 출력 ]


4. Example 📚

[ 입출력 예시 ]

예제 입력예제 출력
5 210

5. Solution 🔑

이항 계수에 대한 풀이는 7. Growth에 적어놓았다.


1. 팩토리얼을 구해야하므로 우선 팩토리얼을 구해주는 메서드(factorial)을 정의해준다.
n이 들어오면 1부터 n까지의 값들을 모두 곱해주고 곱한 값을 반환하는 코드를 만들어줬다.


2. 메인 메서드에서 N과 K값을 받을 변수를 선언하여 두 값을 받아주고
출력문에 바로 메서드를 호출해서 이항 계수 공식에 맞게 N팩토리얼를 (N-K) 곱과 K의 팩토리얼 곱으로 나누어 출력해주었다.


6. Code 💻

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

public class Main {
	
	public static int factorial(int n) {
		int total = 1;
		for(int i=n; i>0; i--) {
			total *= i;
		}
		 return total; 
	}

	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.println(factorial(N) / (factorial(K) * factorial(N-K)));
        
	}

}

7. Growth 🍄

이항계수란?
nCk로 표현 가능하며 (n >= k), n!(팩토리얼)을 (n-k)! * k!로 나누어 주면 값을 구할 수 있다.

좋은 웹페이지 즐겨찾기