백준-Node.js-11050, 이항계수 1

송철진·2023년 3월 1일
0

백준-Node.js

목록 보기
43/69

풀이

const fs = require('fs')
const [n, k] = fs.readFileSync('/dev/stdin').toString().trim()
                .split(' ')

const fa = num => {
  let result = 1
  for(let i = num; i > 1; i--){
    result *= i
  }
  return result
}

const solution = (n, k) => {
    return n === k ? 1 : fa(n) / (fa(n-k) * fa(k)) 
}

console.log(solution(n,k))

주어진 이항계수를 계산하는 공식은 다음과 같다

프로그래머스에 동일한 문제가 있다.(구슬을 나누는 경우의 수 - 풀이)

  1. 재사용 했더니 런타임에러(RangeError)가 발생한다. 왜일까?
    👉 입력값의 범위가 0 ~ 10인데 BigInt()를 사용했기 때문!
    👉 toString()으로 'n'을 없애줘서 괜찮을줄 알았는데 아닌가보다

  2. 재귀함수를 이용해서 팩토리얼을 구현했는데 틀렸습니다 라고 표시된다
    👉 ❓

function fa(num){
    return num > 1 ? num*fa(num-1) : num
}
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글