#1010 다리놓기 [백준](H99.27)

2K1·2021년 6월 16일
0

알고리즘

목록 보기
27/40

📄문제

재원이는 서쪽의 사이트와 동쪽의 사이트를 다리로 연결하려고 한다. (이때 한 사이트에는 최대 한 개의 다리만 연결될 수 있다.) 재원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려고 한다. 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경우의 수를 구하는 프로그램을 작성하라.

예제 입력1

3
2 2
1 5
13 29

예제 출력1

1
5
67863915

조합공식 쓰면 된다고 한다. (외울수밖에 흙흙..)
e! * (e-w)! * w!

🖋️코드

def factorial (f):
    f1 = 1
    for i in range(1, f+1):
        f1 *= i
    return f1

n = int(input())

for _ in range(n):
    w, e = map(int, input().split())		# w = 서쪽다리, e = 동쪽다리
    bridge = factorial(e) // (factorial(w) * factorial(e - w))
    print(bridge)
profile
📌dev_log

0개의 댓글

관련 채용 정보