coding_test/BAEKJOON

백준 2775번 C언어 풀이

CodeJin 2021. 8. 30. 23:27

https://www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

조건에 맞게 사람수를 세는 문제.

 

h(0 <= h <= 14)층 w(1 <= w <= 14)호에 사는 세대의 구성원 수는 h-1층의 1호부터 w호까지의 구성원 수의 합만큼 데리고 살아야 한다. (대체 왜?)

 

이 아파트는 0층부터 존재하며 0층의 w호에는 w명만큼 살고 있다. 

 

어떻게 풀어야 할지 고민하다가, 다차원 배열이 떠올랐다.

 

#include <stdio.h>

int main() {
    int h, w; // 층수, 호수
    int T; // 테스트 케이스
    int arr[15][15];

    for (int i = 0; i < 15; i++) { // 0층, 0호, 1호 설정
        arr[0][i] = i;
        arr[i][0] = 0; // 0호는 존재하지 않으니 0으로 초기화
    }
    for (int i = 1; i < 15; i++) { // i층
        for (int j = 1; j < 15; j++) { // j호
            arr[i][j] = arr[i][j - 1] + arr[i - 1][j];
        }
    }
    scanf("%d", &T);
    while (T--) {
        scanf("%d %d", &h, &w);
        printf("%d\n", arr[h][w]);
    }
    
	return 0;
}