조합 예제 - 1
Last updated
Last updated
n(총 개수) k(선택 수)
DP 리스트
for n 반복:
D[i][1] = i
D[i][0] = 1
D[i][i] = 1
for i n 반복:
for k i만큼 반복: # 고르는 수의 개수가 전체 개수를 넘을 수 없음
DP[i][j] = DP[i - 1][j] + DP[i - 1][j - 1]
D[n][k] 출력n, k = map(int, input().split())
DP = [[0 for _ in range(n + 1)] for _ in range(n + 1)]
for i in range(n + 1):
DP[i][1] = i
DP[i][0] = 1
DP[i][i] = 1
for i in range(2, n + 1):
for j in range(1, i):
DP[i][j] = DP[i - 1][j] + DP[i - 1][j - 1]
print(DP[n][k])import java.io.*;
import java.util.*;
public class Main {
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[][] dp = new int[n + 1][n + 1];
for (int i = 0; i < n + 1; i++) {
dp[i][1] = i;
dp[i][0] = 1;
dp[i][i] = 1;
}
for (int i = 2; i < n + 1; i++) {
for (int j = 1; j < i; j++) {
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
}
}
System.out.println(dp[n][k]);
}
}