처음에는 단순히 itertoors에서 combinations를 import해서 사용했는데 예상했던대로 시간초과가 나왔다. (요즘 문제 푸는데 시간초과가 너무 많이 나와...ㅜ)
그래서! 조합을 combinations를 사용하는 것이 아니라 식을 factorial을 불러와서 조합의 경우의 수를 만들어 주었다.
📚 풀이
1. math 모듈을 가져와 factorial을 사용한다.
2. mCn 을 factorial을 사용해서 만든다면 => (m!/(m-n)!)/n!
3. 2번에서 사용한 식을 컴퓨터에서 실행하면 오차가 발생한다. (23 24 입력시 23.9999996이 나옴)
그래서 어차피 몫과 값이 다를리가 없기 때문에 /가 아닌 //를 사용해준다.
💻 코드
import sys, math
input = sys.stdin.readline
for i in range(int(input().rstrip())):
n, m = map(int, input().rstrip().split())
print(math.factorial(m)/math.factorial(m-n)/math.factorial(n))
'Problem Solving > 백준' 카테고리의 다른 글
[백준] 1037번: 약수 (0) | 2022.04.20 |
---|---|
[백준] 2179번: 비슷한 단어 (0) | 2022.04.18 |
[백준] 1924번: 2007년 (0) | 2022.04.14 |
[백준] 5397번: 키로거 (0) | 2022.04.12 |
[백준] 1359번: 복권 (0) | 2022.04.12 |