166. 다리 놓기
1. Python
import math
T = int(input())
for _ in range(T):
n, m = map(int, input().split())
bridge = math.factorial(m) // (math.factorial(n) * math.factorial(m - n))
print(bridge)
T = int(input())
for _ in range(T):
m, n = map(int, input().split())
answer = 1
k = n - m
while n > k:
answer *= n
n -= 1
while m > 1:
answer = answer // m
m -= 1
print(answer)
def combination(n,r):
if dp[n][r] != 0:
return dp[n][r]
if r == 1:
return n
elif n == r:
return 1
else:
dp[n][r] = combination(n-1, r) + combination(n-1, r-1)
return dp[n][r]
r,n = map(int, input().split())
dp = [ [0 for _ in range(r+1)] for _ in range(n+1)]
ans = combination(n,r)
print(ans)
Author And Source
이 문제에 관하여(166. 다리 놓기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@corone_hi/166.-다리-놓기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)