간단하지만 구현을 어떻게 하느냐에 따라 시간차이가 많이 나는 문제 유형이다. 제한이 14로 되어있어서 배열에 각 호수마다의 인원수를 넣었지만, 만약 제한이 100이 되었다면, 구현을 달리 해야한다. 일단은 배열에 각 호수마다의 인원을 넣어서 풀었다. 내일 알고리즘을 손 봐서 제한이 100일때도 구현해 봐야겠다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] apart = new int[15][15];
for(int i = 0; i < 15; i++) {
apart[i][1] = 1;
apart[0][i] = i;
}
for(int i = 1; i < 15; i ++) {
for(int j = 2; j < 15; j++) {
apart[i][j] = apart[i][j - 1] + apart[i - 1][j];
}
}
int T = scanner.nextInt();
for(int i = 0; i < T; i++) {
int k = scanner.nextInt();
int n = scanner.nextInt();
System.out.println(apart[k][n]);
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1011번 Fly me to the Alpha Centauri(Java) (0) | 2021.03.10 |
---|---|
백준 2839번 설탕배달 (Java) (0) | 2021.03.08 |
백준 10250번 ACM 호텔 (Java) (0) | 2021.03.05 |
백준 4948 베르트랑 공준 (0) | 2021.02.19 |
백준 1929번 소수 구하기 (0) | 2021.02.19 |