728x90
반응형
문제
해설
이항 계수 구하는 법은
n! / k!(n - k)! 인데
예시를 들어보면(n = 10, k = 4)
10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 / 4 * 3 * 2 * 1 * 6 * 5 * 4 * 3 * 2 * 1
이다.
결국 (n - k)! 만큼은 다 날라간다.
남은 부분만큼만 구해주면 된다.
위처럼 직접 계산하지 말고
math.factorial을 사용하는 법도 있다.
코드
-파이썬
#백준 11050(이항 계수 1)
from math import factorial
n, k = map(int, input().split())
up = 1
down = 1
for i in range(n, n - k, -1):
up *= i
for j in range(1, k + 1):
down *= j
print(up // down)
#factorial 함수 사용해서 푸는 법
# print(factorial(n) // (factorial(k) * factorial(n - k)))
-자바
//백준 11050(이항 계수 1)
import java.util.*;
import java.io.*;
public class Boj_11050 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int up = 1;
int down = 1;
for(int i = n; i > n - k; i--) {
up *= i;
}
for(int j = 1; j < k + 1; j++) {
down *= j;
}
System.out.println(up / down);
}
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[파이썬, 자바] BOJ_10814(나이순 정렬) (0) | 2021.04.02 |
---|---|
[파이썬, 자바] BOJ_1475(방 번호) (0) | 2021.03.25 |
[파이썬, 자바] BOJ_9625(BABBA) (2) | 2021.03.15 |
[파이썬, 자바] BOJ_2628(종이자르기) (0) | 2021.03.09 |
[파이썬] BOJ_13300(방 배정) (1) | 2021.03.04 |