• ์ดํ•ญ ๊ณ„์ˆ˜ ๋‚ด ๋ง˜๋Œ€๋กœ ์ •๋ฆฌ(with ์žฌ๊ท€)

    2020. 2. 27.

    by. ํ•ด๋Š”์„ 

    0. ์ดํ•ญ๊ณ„์ˆ˜๋ž€?  binomial coefficient?

    ์ฃผ์–ด์ง„ ํฌ๊ธฐ์˜ (์ˆœ์„œ ์—†๋Š”) ์กฐํ•ฉ์˜ ๊ฐ€์ง“์ˆ˜. n๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง€๋Š” ์ง‘ํ•ฉ์—์„œ ํฌ๊ธฐ๊ฐ€ r ์ธ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜.

     

     

    ๋ณดํ†ต ์œ„์˜ ์‹๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•œ๋‹ค.

     

    1. ์žฌ๊ท€๋กœ ๋ณด๋Š” ์ดํ•ญ๊ณ„์ˆ˜

    ์ดํ•ญ๊ณ„์ˆ˜๋Š” ์ ํ™”์‹์œผ๋กœ ๊ตฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

     

    (ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•์„ ๊ฐ™์ด ๋ณด๋ฉด ์ˆ˜์‹์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค)

     

    #include <stdio.h>
    
    long long bc(int n, int c) {
    	if (n == c || c == 0) return 1;
    	else return bc(n - 1, c) + bc(n - 1, c - 1);
    }
    
    int main(void) {
    	int n, c;
    	scanf("%d %d", &n, &c);
    	printf("%lld\n", bc(n, c));
    
    }

    ์œ„์˜ ์‹์„ ์žฌ๊ท€๋กœ ํ‘œํ˜„ํ–ˆ๋‹ค.

     

    ๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ์งœ๋ฉด ๋ฌธ์ œ์ ์ด ์ƒ๊ธฐ๋Š”๋ฐ, ์กฐ๊ธˆ๋งŒ ํฐ ์ˆ˜๋ฅผ ๋„ฃ์–ด๋„ ๊ณ„์‚ฐ์ด ํ™•์—ฐํžˆ ๋Š๋ ค์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ด ๊ฒฝ์šฐ ์ค‘๋ณตํ•ด์„œ ๊ณ„์‚ฐํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚œ๋‹ค. ์•„๋ž˜ ํ˜ธ์ถœ ํŠธ๋ฆฌ๋ฅผ ๋ณด์ž.

     

    ๋‘ ๋ฒˆ ์ด์ƒ ๊ณ„์‚ฐํ•˜๋Š” ๋ถ€๋ถ„์„ ํšŒ์ƒ‰๊น”๋กœ ์น ํ•ด ๋ณด์•˜๋‹ค. ๊ทธ๋Ÿผ, ์ด๋Ÿฐ ์ค‘๋ณต ๊ณ„์‚ฐ์„ ์—†์• ๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

     

    2. ๋ฉ”๋ชจ์ด์ œ์ด์…˜

    ๊ฒฐ๊ตญ ์š”์ ์€ ๊ณ„์‚ฐ์„ ํ•œ ๋ฒˆ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ํ•œ ๋ฒˆ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ ๊ฐ’์„ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•ด๋‘๊ณ , ๋‹ค์‹œ ๊ทธ ๊ฐ’์„ ์“ด๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ์ด๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด๋‹ค.

     

    ์•„๋ž˜๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ด์šฉํ•ด์„œ ์ง  ์ดํ•ญ๊ณ„์ˆ˜ ์ฝ”๋“œ๋‹ค.

    long long memo[200][200] = { 0, };
    
    long long bc_memo(int n, int r) {
    	if (memo[n][r] > 0)return memo[n][r];
    
    	if (n == r || r == 0) return memo[n][r] = 1;
    	else return bc_memo(n - 1, r) + bc_memo(n - 1, r - 1);
    
    }
    
    int main(void) {
    	int n, r;
    	scanf("%d %d", &n, &r);
    	printf("%lld\n", bc_memo(n, r));
    
    }

    ์™€, ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋”๋ผ๋ฉด 20 C 10์„ ๊ณ„์‚ฐํ•  ๋•Œ ํ˜ธ์ถœ์ด 369511๋ฒˆ ๊ฑธ๋ฆฌ์ง€๋งŒ, ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด 201๋ฒˆ์œผ๋กœ ํš๊ธฐ์ ์œผ๋กœ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

     

     

     


    reference

    https://ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EA%B3%84%EC%88%98

    ๋ฌธ์ œ๋กœ ํ’€์–ด๋ณด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ™ฉ์ธ์šฑ, ๊น€์šฉํ˜)

    ๋Œ“๊ธ€