백준

[브론즈] 이항 계수1 (11050번)

chsua 2022. 11. 24. 16:13

문제

자연수 N\(N\)과 정수 K\(K\)가 주어졌을 때 이항 계수 (NK)\(\binom{N}{K}\)를 구하는 프로그램을 작성하시오.

 

입력

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

 

출력

(NK)\(\binom{N}{K}\)를 출력한다.

 

내 답안:
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
let [N,K] = fs.readFileSync(filePath).toString().trim().split(" ").map(Number) ;

function pack(x){
    let a = 1
    for (let i = x ; i > 0 ; i-- ){
        a *= i
    }
    return a ;
}
console.log(pack(N)/(pack(K)*pack(N-K))) ;

>> 이항계수를 구하는 따로 공식이 있음 (해당 문제는, n!/k!(n-k)!) (https://ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EA%B3%84%EC%88%98)