소프트웨어/백준

백준 BOJ <1010번> 다리 놓기 || 파이썬

정베디 2021. 5. 12.

썸네일

www.acmicpc.net/problem/1010

 

1010번: 다리 놓기

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.

www.acmicpc.net

확률과 통계를 이용한 간단한 문제

 

문제 요약

좌측에 n개, 우측에 m개의 사이트, m개 중 n개의 사이트에 다리를 꼬이지 않게 놓으려고 한다. 경우의 수는?

 

'꼬이지 않게'가 포인트다. 이미 순서가 정해져 있는 것.

즉, n1은 m개 중 n개를 선택한 것에서 제일 위, n2는 그 다음 위, n3는 그 다음..

이런 식으로

 

따라서 우리는 m개중 n개를 정해주기만 하면 된다.

즉 수학식으로는 mCn

 

따라서 코드는 다음과 같다.

 

최종 코드

해설

math 모듈에 들어있는 factorial을 사용하기 위해

import math를 해주고,

map() 함수를 이용해 한 줄에 들어온 수를 받아준 다음에

수학식 mCn = m!/{(m-n)!n!} 이므로

이를 이용해 다음 값을 출력한다.

 

댓글