프로그래밍 공부/알고리즘
[백준] 1010 다리 놓기
99mini
2021. 9. 28. 10:00
반응형
SMALL
문제출처] https://www.acmicpc.net/problem/1010
문제요약
중복을 포함하지 않는 증가, 감소 함수 구하기 (조합)
풀이
함수에서 단순 증가 혹은 단순 감소함수는 조합을 통해서 구할 수 있다.
조합에서 !(팩토리얼)이 필요하기에 함수 fact을 정의하였다.
def fact(a,b):
result = 1
for _ in range(b):
result *= a
a -= 1
return result
a를 b회까지 팩토리얼을 연산하는 함수이다. 만약 n!을 구하고 싶으면 fact(n,n)
을 호출하면 된다.
소스코드는 Python 3으로 작성되었습니다.
import sys
input = sys.stdin.readline
n = int(input())
def fact(a,b):
result = 1
for _ in range(b):
result *= a
a -= 1
return result
for _ in range(n):
n,m = map(int,input().split())
# mCn 을 계산하면 된다.
print(fact(m,n)//fact(n,n))
반응형
LIST