본문 바로가기
알고리즘/백준

백준 2775번 부녀회장이 될테야 자바 java

by 클로드 2021. 4. 7.
반응형

문제

 

풀이

처음에는 수학공식처럼 수식이 있을 것 같아서 패턴을 찾으려고 이리저리 찾아보다가 못 찾아서

0~14층 1 ~ 14호의 모든 값을 계산해서 찾아내는 것으로 해결을 하였다

2차원배열을 만들고

0층에는 1씩 늘어나는 값을 입력

1호에는 1 입력

2호에는 1씩 늘어나는 값을 입력

 

 

나머지 거주민 수를 계산하는 방법

1층 3호 = 0층 3호 + 1층 2호

apt[i][j] = apt[i - 1][j] + apt[i][j - 1];

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int[] k = new int[T];
        int[] n = new int[T];
        int[][] apt = new int[15][14];

        for (int i = 0; i < T; i++) {
            k[i] = sc.nextInt();
            n[i] = sc.nextInt();
        }

        for (int i = 0; i < apt.length; i++) {
            for (int j = 0; j < apt[i].length; j++) {
                if (i == 0) {
                    apt[i][j] = j + 1;
                    continue;
                } else if (j == 0) {
                    apt[i][j] = 1;
                    continue;
                } else if (j == 1) {
                    apt[i][j] = i + 2;
                    continue;
                }

                apt[i][j] = apt[i - 1][j] + apt[i][j - 1];
            }
        }

        for (int i = 0; i < T; i++) {
            System.out.println(apt[k[i]][n[i] - 1]);
        }
    }
}

 

출처

www.acmicpc.net/problem/2775

반응형

댓글