[Python]BaekJoon.AC

[Python]백준 BaekJoon.AC 11050 : 이항 계수1(for문)

스뇨잉 2022. 1. 9. 16:43
728x90
728x90

 

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

 

11050번: 이항 계수 1

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

www.acmicpc.net

 

 

이항계수를 설명하고 싶지만... 수학문제는 풀어도 용어는 잘 몰라서...;;ㅋㅋ

이항식을 풀어냈을 때..? 문자 앞에 붙은 숫자.. 계수..?를 구하기 위해 콤비네이션을 사용하는데,

우리나라는 그냥 콤비네이션을 사용하면 이항계수를 구할 수 있다고 가르쳐준다! 결과우선주의는 효율적이다.

하지만 나에겐 이항계수를 설명할 능력이 없어 이 정도로 부연설명을 마친다..

 

 

더 깔끔한 코드를 고민했지만 문제의 조건범위가 좁고 자칫 난해할 것 같아 직관적으로 구현했다.

다만 N!/K!을 간소화해 첫번째 for문으로 한번에 표현했다.

 

+)이 문제는 정수로 출력해야 정답으로 인정해주는 듯 하다...? up/down으로 출력하면 오답으로 채점된다. 몫으로 출력해주자.

 

 

 

N, K = map(int, input().split())
up = 1
down = 1


for i in range(K+1, N+1): #K+1부터 N까지
    up = up * i

for i in range(N-K, N-K+1): #1부터 N-K까지. =(N-K, 0, -1)
    down = down * i

print(up//down)

 

 

728x90
728x90