치춘짱베리굿나이스

[백준] 2407 본문

조합

문제

nCm을 출력한다.

입력

n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)

출력

nCm을 출력한다.

풀이

const comb = () => {
  const [n, m] = require("fs")
    .readFileSync("/dev/stdin")
    .toString()
    .trim()
    .split(" ")
    .map(Number);
  const dp = Array.from({ length: n + 1 }, (v) => BigInt(0));
  dp[1] = BigInt(1);
  for (let i = 2; i <= n; i++) dp[i] = dp[i - 1] * BigInt(i);
  console.log(String(dp[n] / dp[n - m] / dp[m]));
};

comb();

반성회

100단위 팩토리얼은 수가 엄청나게 커지기 때문에 BigInt를 사용하였다

BigInt를 사용하지 않으면 어떻게 풀어야하지… 아마 n부터 n - m까지 곱한 값을 dp에 담지 않을까

'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글

[백준] 1676  (0) 2022.07.03
[백준] 1620  (0) 2022.06.27
[백준] 2910  (0) 2022.06.26
[백준] 20492  (0) 2022.06.26
[백준] 2910  (0) 2022.06.25
Comments