minimimi
[백준] 1010 다리 놓기 본문
반응형
문제출처] 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))
반응형
'프로그래밍 공부 > 알고리즘' 카테고리의 다른 글
[백준] 14888 연산자 끼워넣기 (0) | 2021.10.02 |
---|---|
[백준] 4949 균형잡힌 세상 (0) | 2021.09.29 |
[백준] 3036 링 (0) | 2021.09.27 |
[백준] 1934 최소공배수 (0) | 2021.09.26 |
[백준] 2609 최대공약수와 최소공배수 (0) | 2021.09.26 |