알고리즘/백준
백준_2775 - JAVA
맏리믓
2022. 12. 27. 11:52
- 알고리즘
. 입력을 받을 때 마다 계산을 하게 되면 시간이 많이 걸리기 때문에 미리 모든 경우에 대한 값을 배열로 제작 한다.
. 0층에 사는 사람은 1, 2, 3, ..., 14 처럼 거주자가 1씩 증가한다.
. 1호에 사는 사람은 모두 한명이다.(1층1호, 2층1호, 3층1호, ...)
. 그림과 같이 표시된 호실에 거주하는 사람의 수는 아래층 1호실 부터 같은 호실까지의 거주자 수의 합과 같다.
. 조건에 맞게 배열을 생성후 문제를 해결 한다.
- 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class B_2775 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(br.readLine());
for (int l=0; l<T; l++){
int k = Integer.parseInt(br.readLine());
int n = Integer.parseInt(br.readLine());
int[][] APT = new int[16][16];
for (int i=0; i<15; i++){
APT[0][i] = 1;
APT[i][1] = 1;
}
for (int i=1; i<16; i++){
for (int j=1; j<16; j++){
APT[i][j] = APT[i][j-1] + APT[i-1][j];
}
}
bw.write(APT[k+1][n] + "\n");
bw.flush();
}
bw.close();
}
}