๐งฉ Baekjoon 11050 - ์ดํญ ๊ณ์ 1
๐งฉ Baekjoon 11050 - ์ดํญ ๊ณ์ 1
๋ฌธ์
์์ฐ์ N๊ณผ ์ ์ K๊ฐ ์ฃผ์ด์ก์ ๋ ์ดํญ ๊ณ์ binom{N}{K}๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 โคย Nย โค 10, 0 โคย Kย โคย N)
์ถ๋ ฅ
binom{N}{K}๋ฅผ ์ถ๋ ฅํ๋ค.
์์
โ ์ ๋ ฅ 1
1
5 2
โ ์ถ๋ ฅ 1
1
10
์์ฑ ์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
private static final long[][] dp = new long[11][11];
public static void main(String[] args) throws IOException {
// 1. ๋ณ์ ์ ์ธ ๋ฐ ์ด๊ธฐํ
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());
// 2. ์ฒ๋ฆฌ ๋ฐ ์ถ๋ ฅ
System.out.println(nCr(n, k));
}
private static long nCr(int n, int r) {
if (r == 0 || n == r) return 1;
if (dp[n][r] != 0) return dp[n][r];
return dp[n][r] = nCr(n-1, r-1) + nCr(n-1, r);
}
}
- ํ๋ฅด๋ง์ ์์ ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง ์ฌํ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ ๊ฒ ๊ฐ์ ์ด๋ฒ์๋ ์ฌ๊ท๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๊ตฌํํด๋ณด์๋ค.
This post is licensed under CC BY 4.0 by the author.