Notice
Recent Posts
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

일상

[C++] 백준 2775 : 부녀회장이 될테야 본문

programming

[C++] 백준 2775 : 부녀회장이 될테야

Mysteryu 2024. 4. 18. 21:17

풀이

 

예를 들어, 2층 3호의 거주민 수를 알고 싶다면 0층의 1호 ~ 3호의 거주민 수, 1층의 1호 ~ 3호 거주민 수를 알고 있으면 된다. 즉, k층의 n호의 거주민 수를 알고 싶다면 (k-1)층 까지의 1호 ~ n호 거주민 수를 알고 있으면 된다. 

 

먼저, 동적할당으로 n 사이즈의 배열을 선언 후, 0층의 1호(배열 index : 0)에서 n호 (배열 index : 1) 의 거주민 수를 초기화 한다. 

이후 1층부터 K층까지 차례대로 거주민 수를 계산하게 된다

 

다이나믹 프로그래밍이라는 힌트를 알게되면 무난하게 풀 수 있는 문제이다.

 

#include <iostream>
int main() {
	int t; //test case num
	std::cin >> t;

	int k, n; // k : floor, n : room num

	for (int i = 0; i < t; i++) {
		std::cin >> k >> n;

		int* arr = new int[n];

		for (int j = 0; j < n; j++) {
			arr[j] = j + 1;
		}

		for (int x = 1; x <= k; x++) { 
			for (int y = 1; y < n; y++) {
				arr[y] += arr[y - 1];
			}
		}

		std::cout << arr[n-1] << std::endl;
		delete[] arr;
	}
}

'programming' 카테고리의 다른 글

[C++] 백준 17103: 골드바흐 파티션  (0) 2024.05.13
[C++] 백준 1212 : 8진수 2진수  (0) 2024.04.27
[C++] 백준 2292 : 벌집  (0) 2023.08.02
[C++] 백준 2903 : 중앙 이동 알고리즘  (0) 2023.07.04
[C++] 백준 2563 : 색종이  (0) 2023.06.21
Comments