🧠 문제 요약
- 자연수 N과 정수 K가 주어졌을 때 이항계수 C(N,K)를 구하는 문제
- 이항계수란 "n개 중에서 k개를 선택하는 경우의 수"를 의미
- 공식: C(n,k) = n! / (k! * (n-k)!)
- 입력: N, K (1 ≤ N ≤ 10, 0 ≤ K ≤ N)
- 출력: C(N,K) 값
✅ 실행 예시 및 결과
입력:
5 2
출력:
10
✍️ 내 풀이
- 팩토리얼 함수를 먼저 만든 후 이항계수 공식에 적용!!
- while문을 사용해 n부터 1까지 차례대로 곱하는 방식으로 팩토리얼 함수 생성!!
💻 내가 푼 코드
const input = require('fs').readFileSync('/dev/stdin').toString().split(' ');
const [N, K] = input.map(Number);
const factorial = (n) => {
let result = 1;
while(n > 1) {
result = result * n;
n = n - 1;
}
return result;
}
const C = (n, k) => {
return factorial(n) / (factorial(k) * factorial(n-k))
}
console.log(C(N,K));
📎 남이 푼 코드
const factorial = (n) => n <= 1 ? 1 : n * factorial(n - 1);
- 재귀 함수를 이용한 팩토리얼
- 한 줄로 쓴 간단한 코드
- n이 1 이하면 1을 돌려줌
- 그렇지 않으면 n × factorial(n-1) 계산
- 쉽게 말해 자기 자신을 다시 호출하는 함수
🔍 회고 & 배운 점
- 이항계수라는 개념을 너무 오랜만에 들어서 놀랐......몰라서 ㅎㅎ...
- 저 남이 푼 코드는.... 재귀함수를 많이 다뤄보지 못해서 잘 못 쓸 듯
- (왜 저 코드는 이모티콘으로 보이지 ㅋㅋㅋ => n <=)
반응형
'Study > Coding Test' 카테고리의 다른 글
[baekjoon] 나이순 정렬(JavaScript) (0) | 2025.08.18 |
---|---|
[baekjoon] 단어 정렬(JavaScript) (5) | 2025.08.16 |
[beakjoon] 평균(JavaScript) (5) | 2025.08.14 |
[beakjoon] 팰린드롬수(JavaScript) (4) | 2025.08.13 |
[beakjoon] 웰컴 키트(JavaScript) (3) | 2025.08.12 |