[๋ฐฑ์ค/python] 1010๋ฒ : ๋ค๋ฆฌ ๋๊ธฐ
๋ฌธ์
์ฌ์์ด๋ ํ ๋์์ ์์ฅ์ด ๋์๋ค. ์ด ๋์์๋ ๋์๋ฅผ ๋์ชฝ๊ณผ ์์ชฝ์ผ๋ก ๋๋๋ ํฐ ์ผ์ง์ ๋ชจ์์ ๊ฐ์ด ํ๋ฅด๊ณ ์๋ค. ํ์ง๋ง ์ฌ์์ด๋ ๋ค๋ฆฌ๊ฐ ์์ด์ ์๋ฏผ๋ค์ด ๊ฐ์ ๊ฑด๋๋๋ฐ ํฐ ๋ถํธ์ ๊ฒช๊ณ ์์์ ์๊ณ ๋ค๋ฆฌ๋ฅผ ์ง๊ธฐ๋ก ๊ฒฐ์ฌํ์๋ค. ๊ฐ ์ฃผ๋ณ์์ ๋ค๋ฆฌ๋ฅผ ์ง๊ธฐ์ ์ ํฉํ ๊ณณ์ ์ฌ์ดํธ๋ผ๊ณ ํ๋ค. ์ฌ์์ด๋ ๊ฐ ์ฃผ๋ณ์ ๋ฉด๋ฐํ ์กฐ์ฌํด ๋ณธ ๊ฒฐ๊ณผ ๊ฐ์ ์์ชฝ์๋ N๊ฐ์ ์ฌ์ดํธ๊ฐ ์๊ณ ๋์ชฝ์๋ M๊ฐ์ ์ฌ์ดํธ๊ฐ ์๋ค๋ ๊ฒ์ ์์๋ค. (N ≤ M)
์ฌ์์ด๋ ์์ชฝ์ ์ฌ์ดํธ์ ๋์ชฝ์ ์ฌ์ดํธ๋ฅผ ๋ค๋ฆฌ๋ก ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋ค. (์ด๋ ํ ์ฌ์ดํธ์๋ ์ต๋ ํ ๊ฐ์ ๋ค๋ฆฌ๋ง ์ฐ๊ฒฐ๋ ์ ์๋ค.) ์ฌ์์ด๋ ๋ค๋ฆฌ๋ฅผ ์ต๋ํ ๋ง์ด ์ง์ผ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์์ชฝ์ ์ฌ์ดํธ ๊ฐ์๋งํผ (N๊ฐ) ๋ค๋ฆฌ๋ฅผ ์ง์ผ๋ ค๊ณ ํ๋ค. ๋ค๋ฆฌ๋ผ๋ฆฌ๋ ์๋ก ๊ฒน์ณ์ง ์ ์๋ค๊ณ ํ ๋ ๋ค๋ฆฌ๋ฅผ ์ง์ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ ๊ฐ๊ฐ์ ํ ์คํธ์ผ์ด์ค์ ๋ํด ๊ฐ์ ์์ชฝ๊ณผ ๋์ชฝ์ ์๋ ์ฌ์ดํธ์ ๊ฐ์ ์ ์ N, M (0 < N ≤ M < 30)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ์ฃผ์ด์ง ์กฐ๊ฑดํ์ ๋ค๋ฆฌ๋ฅผ ์ง์ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ต
import math
T = int(input())
answer = []
for i in range(T):
N, M = map(int, input().split())
answer.append(math.factorial(M)//math.factorial(N)//math.factorial(M-N))
for i in answer:
print(i)
M๊ฐ์ ์ฌ์ดํธ ์ค ์์ชฝ์ ์ฌ์ดํธ์ ์ฐ๊ฒฐํ์ง ์์ ์ฌ์ดํธ M-N๊ฐ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด N์ด 3์ด๊ณ M์ด 5์ผ ๋, ๋์ชฝ์ 2๊ฐ์ ์ฌ์ดํธ๊ฐ ์์ชฝ์ ์ฌ์ดํธ์ ์ฐ๊ฒฐ๋์ง์๋๋ค.
M๊ฐ ์ค M-N๊ฐ๋ฅผ ์์์๊ด์์ด ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ (M!/N!)/(M-N)!์ด๋ค.
math.factorial์ ์ด์ฉํ์ฌ ๊ตฌํ ํ answer์ ์ ์ฅํ์ฌ ๋ง์ง๋ง์ ๊ฐ ์ผ์ด์ค์ ๋ํ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 10773๋ฒ : ์ ๋ก (0) | 2021.03.29 |
---|---|
[๋ฐฑ์ค/python] 10828๋ฒ : ์คํ (0) | 2021.03.29 |
[๋ฐฑ์ค/python] 11050๋ฒ : ์ดํญ ๊ณ์ 1 (0) | 2021.03.28 |
[๋ฐฑ์ค/python] 2609๋ฒ : ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2021.03.19 |
[๋ฐฑ์ค/python] 1037๋ฒ : ์ฝ์ (0) | 2021.03.18 |