[백준] 2775 부녀회장이 될테야 - Java

Yunki Kim·2022년 12월 14일
0

백준

목록 보기
61/104
post-thumbnail

문제


링크


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int[][] apt = new int[15][15];
        for (int i = 0; i < 15; i++) {
            apt[i][1] = 1;
            apt[0][i] = i;
        }

        for (int i = 1; i < 15; i++) {
            for (int j = 2; j < 15; j++) {
                apt[i][j] = apt[i][(j - 1)] + apt[(i-1)][j];
            }
        }

        int T = Integer.parseInt(br.readLine());
        for (int i = 0; i < T; i++) {
            int k = Integer.parseInt(br.readLine());
            int n = Integer.parseInt(br.readLine());

            sb.append(apt[k][n]).append("\n");
        }
        br.close();
        System.out.print(sb);
    }
}

리뷰

이차원배열을 이용하여 문제를 풀어보았다.
문제를 읽어보면

"0층의 i호에는 i명이 산다."
-> 0층의 N호에는 n명의 사람이 살게됨을 알 수 있고

"a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다"
-> 각 층의 1호에는 전부 1명만 살고있음을 알 수 있다.

그리고 0호는 존재하지않으므로 배열의 0,1열과 0행은 해결되었다.

위의 두 번째 문장을 보면 자신 아래층의 1호부터 b호까지의 합한 수라고 되어있는데 자신의 전 호(예를 들어 103호면 102호)가 아래층의 1,2호의 값을 더한 값이므로 전 호수와 자신의 집 아래층의 숫자를 더하면 조건에 맞게된다.

반복문을 통해 해당하는 값을 배열에 다 채워둔 뒤 입력에 맞는 배열값을 출력하도록 하였다.

0개의 댓글