이항 계수 1 (백준 11050번)

박영준·2023년 5월 26일
0

코딩테스트

목록 보기
153/300


해결법

  • 참고: 조합 공식 + 파스칼 삼각형

  • 계수

    • 어떤 변수에 곱해진 인자
    • ax² + b = 0 일 때, 여기서 a 가 계수
  • 이항 계수

    • 두 개의 항(이항)을 전개하여 계수로 나타낸 것

    • (a + b)², (a + b)³ 처럼 전개하였을 때의 계수

      • (a + b)² = a2 + 2ab + b2 이고, 계수는 {1, 2, 1}
      • (a + b)³ = a3 + 3a2b + 3ab2 + b3 이고, 계수는 {1, 3, 3, 1}
    • 이렇게 이항을 계수로 나타내다보면 파스칼 삼각형이 나오게 된다.

방법 1

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
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.println(factorial(N) / (factorial(N - K) * factorial(K)));
	}
 
 	// 경우 1 : factorial(0) == 1 이다. nC₀ = 1
	static int factorial(int N) {
		if (N <= 1)	{
			return 1;
		}
        
        // 경우 2
		return N * factorial(N - 1);
	}
}
  • 주의!
    factorial(0) == 1 이다. (0 이 아님)

참고: [백준] 11050번 : 이항 계수 1 - JAVA [자바]


이항 계수 1 (백준 11050번)

profile
개발자로 거듭나기!

0개의 댓글