본문 바로가기
Development/Baekjoon

[C#] 11050번: 이항 계수 1

by Mobics 2025. 11. 29.

목차


    백준 단계별로 풀어보기

    25.11.29

    17단계: 조합론


    11050번: 이항 계수 1

    문제 링크 : https://www.acmicpc.net/problem/11050

     

    문제를 풀기 위해 알아야 할 개념

    >> 이항 계수

    : 이항식을 이항 정리로 전개했을 때 각 항의 계수이며, 주어진 크기의 (순서 없는) 조합의 가짓수이다.

    --> 주어진 집합 n 에서 원하는 개수 k 만큼 순서없이 뽑는 조합의 개수를 의미한다.

     

    - 이항계수 공식

    : 단, (0 ≤ n). 만약 (k < 0) 이거나 (k > n) 이라면 결과값은 0이다.

    출처 : https://en.wikipedia.org/wiki/Binomial_coefficient

     

    ※ 참고 문서 - 위키백과

    링크 : 위키백과 - 이항 계수

     

    문제 풀이

    1. StreamReader로 입력값을 받아 각각 int값으로 변환하여 자연수 N 과 정수 K 를 담을 변수 nk 에 담는다.
    2. 재귀함수의 형태로 만든 Factorial 함수를 활용하여 StreamWriter로 이항계수 공식에 맞게 계산하여 출력한다.
      •     Factorial(int n) : n 이 0이라면 1을, 아니라면 Factorial(n - 1)에 n 을 곱한 값을 반환한다. --> n 이 5라면 결과적으로 5 × 4 × 3 × 2 × 1 × 1 을 계산한 값이 반환된다.

     

    정답 코드

    using System.IO;
    
    class Backjoon
    {
        static void Main(string[] args)
        {
            using var sr = new StreamReader(Console.OpenStandardInput());
            using var sw = new StreamWriter(Console.OpenStandardOutput());
    
            string[] input = sr.ReadLine().Split();
            int n = int.Parse(input[0]);
            int k = int.Parse(input[1]);
            
            sw.Write(Factorial(n)/(Factorial(k)*Factorial(n - k)));
        }
    
        static int Factorial(int n)
        {
            return n == 0 ? 1 : n * Factorial(n - 1);
        }
    }

    'Development > Baekjoon' 카테고리의 다른 글

    [C#] 1037번: 약수  (0) 2025.12.01
    [C#] 1010번: 다리 놓기  (0) 2025.11.30
    [C#] 10872번: 팩토리얼  (0) 2025.11.28
    [C#] 24723번: 녹색거탑  (0) 2025.11.27
    [C#] 15439번: 베라의 패션  (0) 2025.11.26