시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_1010 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[][] dp = new int[30][30];
for (int i = 0; i < 30; i++) {
dp[i][i]=1;
dp[i][0]=1;
}
for (int i = 2; i < 30; i++) {
for (int j = 1; j < 30; j++) {
dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
}
}
int testCase = Integer.parseInt(br.readLine());
int N,M;
StringTokenizer st;
StringBuilder sb = new StringBuilder();
for (int tc = 0; tc < testCase; tc++) {
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
sb.append(dp[M][N]+"\n");
}
System.out.println(sb);
}
}
- 이 문제는 DP를 이용하는 문제입니다.
- 조합에 대한 수학적인 지식이 있어야 조금은 수월하게 풀 수 있습니다.
- nC0 또는 nCn의 경우는 1의 값을 가집니다.
- https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%8A%A4%EC%B9%BC%EC%9D%98_%EC%82%BC%EA%B0%81%ED%98%95
- 파스칼의 삼각형을 참고하여 dp를 짰습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_10773 제로(자바) / 자료구조 (0) | 2021.07.06 |
---|---|
백준_10773 균형잡힌 세상(자바)/자료구조 (0) | 2021.07.06 |
백준_1495 기타리스트(자바) / DP (0) | 2021.05.15 |
백준_2210 숫자판 점프(자바) / DFS + 백 트래킹 (0) | 2021.05.14 |
백준_1309 동물원(자바) / DP (0) | 2021.05.13 |