jyamethyst21 님의 블로그

백준 11050번- '이항 계수 1' (PYTHON 풀이) 본문

CODING 💻

백준 11050번- '이항 계수 1' (PYTHON 풀이)

jyamethyst21 2025. 10. 30. 12:56

문제:

 

이항 계수에 대한 규칙이 기억나지 않아 서치를 통해 공식을 알아냈다. 이항 계수는 조합의 수를 뜻하며, 서로 다른 N개 중에서 순서 상관없이 K개를 고르는 방법의 수이다. 공식은 다음과 같다.

 

즉, 해당 문제는 위 공식을 코드로 풀어내면 쉽게 풀 수 있으며, 팩토리얼을 활용하면 된다!

 

풀이:

import sys

N, K = map(int, sys.stdin.readline().split())

def fac(x):
    res = 1
    for i in range(2, x + 1):
        res *= i
    return res

print(fac(N) // (fac(K) * fac(N - K)))

기본 팩토리얼은 이전 문제나 옛날에 풀었던 문제를 참고하면 될 것 같고, 이번 문제를 풀기 위해서는 위와 같이 작성해야 한다.

res를 1로 설정하고(곱셈을 해야하기 때문에 0이면 안됨) 2부터 N, K에 대한 값을 넣으면서 곱한 뒤 res에 결과를 적장한다. 그러면 팩토리얼처럼 작동이 된다. 그 후 print에서는 앞서 말한 공식대로 함수를 호출하게 되면 우리가 원하는 조합의 수 결과가 나온다.

 

이번 문제는 공식만 알면 쉽게 풀 수 있다!