-
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
๋ฌธ์ ๋ก ํ์ด๋ณด๋ ์๊ณ ๋ฆฌ์ฆ(ํฉ์ธ์ฑ, ๊น์ฉํ)
'๐STUDY > Etc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RDPWrap ์๊ฒฉ ๋ฐ์คํฌํฑ ์ธ์ ๋ค์ค ์ ์ (0) 2022.03.02 Federated Learning ๋ด ๋ง๋๋ก ์ ๋ฆฌ (1) 2021.11.22 VMWare Ubuntu 16.07์์ ROS UVC_camera ์คํํ๊ธฐ (0) 2021.10.31 ๊ทธ๋ ์ด ์ฝ๋ Gray code? (0) 2020.02.28 python ์ ๊ท ํํ์ ๋ด๋ง๋๋ก ์ ๋ฆฌ (0) 2020.02.25 ๋๊ธ