알고리즘/baekjoon

baekjoon(1010-다리놓기)_ python

ash silver 2022. 5. 16. 16:42

1) 문제

 

 

2) 예시

 

3) 제출

import sys
import math
input = sys.stdin.readline

sen = ""

for i in range(int(input())):
    n, m = map(int, input().split())
    sen += str(math.comb(max(n, m), min(n, m))) + "\n"

print(sen)

4) 메모리/시간/코드길이

5) PLUS

겹치지 않게 한다는 말을 

m에서 n개만큼 뽑아내고 n을 위에서부터 순서대로 이어주면 된다고 이해했다.

(문제에서 n<=m 조건을 이 블로그 쓰면서 보게됨,, 이러면 max, min을 쓸 필요가 없음,,)

그렇다면 mCn이 된다. 

mCn을 하기 위해 노트를 펴고 생각을 해 봤지만 파이썬에서 조합 함수가 있을 것 같아서 찾아봤더니

import math만 해주면 math(m,n)으로 조합 수를 구할 수 있다는 것을 알게 되었다. 

한 케이스마다 출력하면 시간이 더 걸릴 것 같아서

sen에 각 결과를 넣어서 케이스 입력이 모두 끝난 후 출력했다.