728x90
백준 13251 조약돌 꺼내기
문제
효빈이의 비밀 박스에는 조약돌이 N개 들어있다. 조약돌의 색상은 1부터 M까지 중의 하나이다.
비밀 박스에서 조약돌을 랜덤하게 K개 뽑았을 때, 뽑은 조약돌이 모두 같은 색일 확률을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 M (1 ≤ M ≤ 50)이 주어진다.
둘째 줄에는 각 색상의 조약돌이 몇 개 있는지 주어진다. 각 색상의 조약돌 개수는 1보다 크거나 같고 50보다 작거나 같은 자연수이다.
셋째 줄에는 K가 주어진다. (1 ≤ K ≤ N)
출력
첫째 줄에 뽑은 조약돌이 모두 같은 색일 확률을 출력한다. 정답과의 절대/상대 오차는 10^-9까지 허용한다.
제출
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
int M, K, T;
int D[] = new int[51];
double probability[] = new double[51];
double ans;
T = 0;
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
M = Integer.parseInt(st.nextToken());
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < M; i++) {
D[i] = Integer.parseInt(st.nextToken());
T += D[i];
}
st = new StringTokenizer(bf.readLine());
K = Integer.parseInt(st.nextToken());
ans = 0.0;
for (int i = 0; i < M; i++) {
if (D[i] >= K) {
probability[i] = 1.0;
for (int k = 0; k < K; k++)
probability[i] *= (double) (D[i] - k) / (T - k);
}
ans += probability[i];
}
System.out.println(ans);
}
}
예제
1
13
8
2
5 7
1
3
5 6 7
2
5
12 2 34 13 17
4
결과
728x90
'JAVA > 백준' 카테고리의 다른 글
[Java] 백준 1256 사전 - 조합 알아보기(7) (0) | 2023.01.03 |
---|---|
[Java] 백준 1722 순열의 순서 - 조합 알아보기(6) (0) | 2023.01.02 |
[Java] 백준 1010 다리 놓기 - 조합 알아보기(4) (1) | 2022.12.31 |
[Java] 백준 2775 부녀회장이 될테야 - 조합 알아보기(3) (0) | 2022.12.30 |
[Java] 백준 11051 이항 계수 2 - 조합 알아보기(2) (0) | 2022.12.29 |
댓글