[Silver III] Title: 조약돌 꺼내기, Time: 40 ms, Memory: 34536 KB -BaekjoonHub

This commit is contained in:
SSUM
2025-03-04 18:12:03 +09:00
parent c475aa6f98
commit b1e816d172
2 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
# [Silver III] 조약돌 꺼내기 - 13251
[문제 링크](https://www.acmicpc.net/problem/13251)
### 성능 요약
메모리: 34536 KB, 시간: 40 ms
### 분류
조합론, 수학, 확률론
### 제출 일자
2025년 3월 4일 18:11:48
### 문제 설명
<p>효빈이의 비밀 박스에는 조약돌이 N개 들어있다. 조약돌의 색상은 1부터 M까지 중의 하나이다.</p>
<p>비밀 박스에서 조약돌을 랜덤하게 K개 뽑았을 때, 뽑은 조약돌이 모두 같은 색일 확률을 구하는 프로그램을 작성하시오. </p>
### 입력
<p>첫째 줄에 M (1 ≤ M ≤ 50)이 주어진다.</p>
<p>둘째 줄에는 각 색상의 조약돌이 몇 개 있는지 주어진다. 각 색상의 조약돌 개수는 1보다 크거나 같고 50보다 작거나 같은 자연수이다.</p>
<p>셋째 줄에는 K가 주어진다. (1 ≤ K ≤ N)</p>
### 출력
<p>첫째 줄에 뽑은 조약돌이 모두 같은 색일 확률을 출력한다. 정답과의 절대/상대 오차는 10<sup>-9</sup>까지 허용한다.</p>

View File

@@ -0,0 +1,16 @@
from itertools import combinations
import sys
from math import factorial
from math import comb
input = sys.stdin.readline
N = int(input())
a = list(map(int, input().split()))
k = int(input())
total = sum(a)
arrtot = 0
for i in a:
arrtot += comb(i, k)
print(arrtot / (comb(total, k)))