๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[C++/๋ฐฑ์ค€] 2775 : ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ

๋ฌธ์ œ

ํ‰์†Œ ๋ฐ˜์ƒํšŒ์— ์ฐธ์„ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” ์ฃผํฌ๋Š” ์ด๋ฒˆ ๊ธฐํšŒ์— ๋ถ€๋…€ํšŒ์žฅ์ด ๋˜๊ณ  ์‹ถ์–ด ๊ฐ ์ธต์˜ ์‚ฌ๋žŒ๋“ค์„ ๋ถˆ๋Ÿฌ ๋ชจ์•„ ๋ฐ˜์ƒํšŒ๋ฅผ ์ฃผ์ตœํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

์ด ์•„ํŒŒํŠธ์— ๊ฑฐ์ฃผ๋ฅผ ํ•˜๋ ค๋ฉด ์กฐ๊ฑด์ด ์žˆ๋Š”๋ฐ, “a์ธต์˜ bํ˜ธ์— ์‚ด๋ ค๋ฉด ์ž์‹ ์˜ ์•„๋ž˜(a-1)์ธต์˜ 1ํ˜ธ๋ถ€ํ„ฐ bํ˜ธ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜์˜ ํ•ฉ๋งŒํผ ์‚ฌ๋žŒ๋“ค์„ ๋ฐ๋ ค์™€ ์‚ด์•„์•ผ ํ•œ๋‹ค” ๋Š” ๊ณ„์•ฝ ์กฐํ•ญ์„ ๊ผญ ์ง€ํ‚ค๊ณ  ๋“ค์–ด์™€์•ผ ํ•œ๋‹ค.

์•„ํŒŒํŠธ์— ๋น„์–ด์žˆ๋Š” ์ง‘์€ ์—†๊ณ  ๋ชจ๋“  ๊ฑฐ์ฃผ๋ฏผ๋“ค์ด ์ด ๊ณ„์•ฝ ์กฐ๊ฑด์„ ์ง€ํ‚ค๊ณ  ์™”๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ์ฃผ์–ด์ง€๋Š” ์–‘์˜ ์ •์ˆ˜ k์™€ n์— ๋Œ€ํ•ด k์ธต์— nํ˜ธ์—๋Š” ๋ช‡ ๋ช…์ด ์‚ด๊ณ  ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋ผ. ๋‹จ, ์•„ํŒŒํŠธ์—๋Š” 0์ธต๋ถ€ํ„ฐ ์žˆ๊ณ  ๊ฐ์ธต์—๋Š” 1ํ˜ธ๋ถ€ํ„ฐ ์žˆ์œผ๋ฉฐ, 0์ธต์˜ iํ˜ธ์—๋Š” i๋ช…์ด ์‚ฐ๋‹ค.


๋ธŒ๋ก ์ฆˆ 1.

์ƒ๊ฐ๋ณด๋‹ค ๋ฌธ์ œ ํ’€๊ธฐ๊ฐ€ ๋ณต์žกํ•˜๊ณ  ๊นŒ๋‹ค๋กœ์› ๋‹ค.

์ด์ฐจ์›๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๋”๋‹ˆ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค์—์„œ C6385 ๊ฒฝ๊ณ ๊ฐ€ ๋–ด๋‹ค.

 

๋ฌด์‹œํ•œ๋‹ค. ์ด์œ ๋Š” ๋‚˜์ค‘์— ๋‹ค๋ฃฐ ์˜ˆ์ •

 

#include <iostream>
using namespace std;

int main() {
	int num = 0;
	int t, k, n;
	cin >> t;

	for (int i = 0; i < t; i++) {
		int floor[15][15] = { {0,}, };
		for (int j = 0; j < 15; j++) floor[0][j] = j + 1;

		cin >> k >> n;
		
		for (int v = 1; v < k+1; v++) { // ์ธต ์ˆ˜๋Š” index 1๋ถ€ํ„ฐ count
			for (int u = 0; u < n; u++) { // ํ˜ธ์‹ค์€ index 0๋ถ€ํ„ฐ count
				for (int h = 0; h < u+1; h++) {
					floor[v][u] += floor[v-1][h];
				}
			}
		}
		cout << floor[k][n-1] << "\n";

	}
	return 0;
}