수학공부를 안해서 그런가. 이항계수가 뭔지 몰라서 검색했다.
단순하게 생각하면 N 개의 숫자를 K 번 사용한 조합을 구하면 된다.
1. 공식이 있길래 그냥 썼다.
2. 풀어볼까?
3. 1 * 2 * 3 * 4 * 5 / (2 * 3 * 2 * 1)
4. = 120 / 12
5. = 10
6. 정리해보면
7. 1 ~ N 까지 돈다고 생각해보자
8. 그리고 그 숫자를 i 라고 하면 또 1 + i ~ N 까지 간다. ( 이 과정을 K 번 반복 )
9 그러면 공식이 나올거같은데 머리가 안돌아간다 ㅠ.ㅠ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/contest/problem/11050 | |
* BOJ 백준온라인져지 11050 이항 계수 1 풀이 | |
*/ | |
public class Main { | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
String str1[] = br.readLine().split(" "); | |
int N = Integer.parseInt(str1[0]); | |
int K = Integer.parseInt(str1[1]); | |
int result = 1; | |
// N! / (K! * (N - K)!) | |
for (int i = K + 1; i <= N; i++) result *= i; | |
for (int i = 2; i <= N - K; i++) result /= i; | |
bw.write(String.valueOf(result)); | |
bw.flush(); | |
} | |
} |
문제
자연수 과 정수 가 주어졌을 때 이항 계수 를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 과 가 주어진다. (1 ≤ ≤ 10, 0 ≤ ≤ )
출력
를 출력한다.
'IT > 알고리즘' 카테고리의 다른 글
BOJ 2608 로마 숫자 풀이 (0) | 2018.03.02 |
---|---|
BOJ 백준온라인져지 11051 이항 계수 2 풀이 (0) | 2018.03.01 |
BOJ 백준온라인져지 15552 빠른 A+B 풀이 (0) | 2018.02.28 |
BOJ 백준온라인져지 5430 AC 풀이 (0) | 2018.02.27 |
BOJ 백준온라인져지 1021 회전하는 큐 풀이 (0) | 2018.02.26 |