1010번: 다리 놓기
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.
www.acmicpc.net
>>
중요한 점은 다리끼리 서로 겹치면 안된다는 점이다.
서쪽 N개, 동쪽 M개의 사이트
1)N=1 ,N!=M
M가지 방법
2)N=M
1가지 방법
3)N!=1, N<M
M개중 N개를 선택하는 조합
def f(m):
r=1
for i in range(1,m+1):
r*=i
return r
T=int(input())
for i in range(T):
N,M=map(int,input().split())
if N==M:
print('1')
elif N==1:
print(M)
else:
a=f(M)
b=f(N)
c=f(M-N)
d=a/b/c
print(round(d))
>>정수를 나누는 과정에서 소수점이 발생하여 오차가 나타나는데 오차 없애줘야함
반응형
'Python > Beakjoon' 카테고리의 다른 글
1026: 보물 (0) | 2021.08.07 |
---|---|
6603번 : 로또 (0) | 2021.08.07 |
3052번: 나머지 (0) | 2021.08.04 |
4153번: 직각삼각형 (0) | 2021.08.04 |
2775번: 부녀회장이 될테야 (0) | 2021.08.04 |