From 38cff75fb683d0e170669d125a8f37480a11d1f4 Mon Sep 17 00:00:00 2001 From: suyeun84 <81475092+suyeun84@users.noreply.github.com> Date: Tue, 4 Nov 2025 23:22:42 +0900 Subject: [PATCH] =?UTF-8?q?[20251104]=20BOJ=20/=20G5=20/=20=EC=B6=95?= =?UTF-8?q?=EA=B5=AC=20/=20=EA=B9=80=EC=88=98=EC=97=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../04 BOJ G5 \354\266\225\352\265\254.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "suyeun84/202511/04 BOJ G5 \354\266\225\352\265\254.md" diff --git "a/suyeun84/202511/04 BOJ G5 \354\266\225\352\265\254.md" "b/suyeun84/202511/04 BOJ G5 \354\266\225\352\265\254.md" new file mode 100644 index 00000000..85345d61 --- /dev/null +++ "b/suyeun84/202511/04 BOJ G5 \354\266\225\352\265\254.md" @@ -0,0 +1,64 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + double A = Double.parseDouble(br.readLine()) / 100; + double B = Double.parseDouble(br.readLine()) / 100; + + double[][][] dp = new double[19][19][19]; + + dp[0][0][0] = 1.0; + + for (int i = 1; i < 19; i++) { + for (int j = 0; j <= i; j++) { + for (int k = 0; k <= i; k++) { + if (j > 0) { // A팀 + dp[i][j][k] += dp[i - 1][j - 1][k] * A * (1 - B); + } + if (k > 0) { // B팀 + dp[i][j][k] += dp[i - 1][j][k - 1] * (1 - A) * (B); + } + + if (j > 0 && k > 0) { // A팀, B팀 + dp[i][j][k] += dp[i - 1][j - 1][k - 1] * A * B; + } + + // 둘 다 넣지 않을 경우 + dp[i][j][k] += dp[i - 1][j][k] * (1 - A) * (1 - B); + } + } + } + + double answer = 0; + + for (int i = 0; i < 19; i++) { + for (int j = 0; j < 19; j++) { + if (isPrime(i) || isPrime(j)) { + answer += dp[18][i][j]; + } + } + } + + System.out.printf("%.16f", answer); + } + + static boolean isPrime(int num) { + if (num < 2) { + return false; + } + + for (int i = 2; i * i <= num; i++) { + if (num % i == 0) { + return false; + } + } + + return true; + } +} +```