조합 예제 - 4
Last updated
Last updated
dp 배열
for 30만큼 반복:
dp[i][1] = i
dp[i][0] = 1
dp[i][i] = 1
for i n 반복:
for k i만큼 반복: # 고르는 수의 개수가 전체 개수를 넘을 수 없음
DP[i][j] = DP[i - 1][j] + DP[i - 1][j - 1]
t(테스트 케이스)
for t 반복:
m, n 입력
print(dp[m][n])dp = [[0 for _ in range(31)] for _ in range(31)]
for i in range(31):
dp[i][1] = i
dp[i][0] = 1
dp[i][i] = 1
for i in range(2, 31):
for j in range(1, i):
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1]
t = int(input())
for _ in range(t):
n, m = map(int, input().split())
print(dp[m][n])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));
int[][] dp = new int[31][31];
for (int i = 0; i < 31; i++) {
dp[i][1] = i;
dp[i][i] = i;
dp[i][0] = 1;
}
for (int i = 2; i < 31; i++) {
for (int j = 1; j < 31; j++) {
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
}
}
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
System.out.println(dp[m][n]);
}
}
}