BOJ

[백준온라인저지/BOJ] 2775번 부녀회장이 될테야

torimuk 2022. 1. 27. 11:59

문제


 

풀이


해당 아파트 호수당 거주 인원을 표로 나타내면 다음과 같다.

프로그램을 통해 출력한 거주 인원

해당 표를 통해 k층 n호에 거주하는 인원을 파악할 수 있는 규칙을 알 수 있다.

K층 N호 거주자 수의 비밀

K층 N호 = K층 (N-1)호의 인원 + (K-1)층 N호의 인원


인 것을 알 수 있다.

 

0층은 호수대로 거주하고, 모든 층의 1호는 1명만 거주하므로 위 법칙을 이용하여 K층 N호의 거주 인원을 구할 수 있다.

따라서 이를 코드로 구현하면 다음과 같다.

 

 


import java.util.Scanner;
public class Main {
    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);
        int T;
        T = scanner.nextInt();
        int[] k = new int[T];
        int[] n = new int[T];
        int[][] building = new int[15][15];

        for(int i = 0; i < T; i++){
            k[i] = scanner.nextInt();
            n[i] = scanner.nextInt();
        }
        for(int i = 1; i < 15; i++){
            building[0][i] = i;
        }

        for(int i = 1; i < 15; i++){
            for(int j = 1; j < 15; j++){
                if(j == 1){
                    building[i][j] = 1;
                }
                else{
                    building[i][j] = building[i][j-1] + building[i-1][j];
                }
            }
        }
        for(int i = 0; i < T; i++){
            System.out.println(building[k[i]][n[i]]);
        }
    }
}