문제링크 : https://www.acmicpc.net/problem/2775
문제풀이
처음에는 이 문제의 규칙을 찾으려고 했다.
하지만 문제를 다시 보니 입력받는 수가 크지 않아서 (1 <= k <= 14, 1 <= n <= 14)
14층 14호까지 모든 거주민 수를 구하는 데 시간이 많이 걸리지 않을 것 같다는 생각이 들었다.
그래서 14호 14층까지 채울 수 있는 2차원 배열을 만들어, 모든 경우를 다 계산해 놓았다.
0층에 해당하는 값들만 세팅해 놓고, 1층 1호부터 순서대로 아래층을 더해서 계산한다.
빨간색의 2층 3호인 경우에는, 1층의 1호, 2호, 3호의 수를 더하면 된다.
소스코드
/* * 백준 2775번: 부녀회장이 될테야 */ #include <iostream> using namespace std; int main() { int T; cin >> T; int arr[15][15]; // 0층 값 세팅 for (int i = 1; i < 15; i++) { arr[0][i] = i; } for (int i = 1; i < 15; i++) { for (int j = 1; j < 15; j++) { int sum = 0; for (int k = 1; k <= j; k++) { sum += arr[i - 1][k]; } arr[i][j] = sum; } } while (T--) { int k, n; cin >> k >> n; cout << arr[k][n] << endl; } return 0; }
'Algorithm > 문제풀이' 카테고리의 다른 글
[백준] 1157번: 단어 공부 (0) | 2019.05.21 |
---|---|
[백준] 1924번: 2007년 (0) | 2019.05.19 |
[백준] 10250번: ACM 호텔 (0) | 2019.05.18 |
[백준] 1011번: Fly me to the Alpha Centauri (0) | 2019.05.18 |
[백준] 1193번: 분수찾기 (0) | 2019.03.22 |