인프런 커뮤니티 질문&답변

JOXXEP님의 프로필 이미지
JOXXEP

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

7-Q 1344 문제 질문입니다!

작성

·

114

0

7-Q 1344 문제 질문입니다!

#include <bits/stdc++.h>

using namespace std;

double A,B,ret;
// 1~18까지 소수가 아닌 수로 배열 선언
int arr[11]={1,4,6,8,9,10,12,14,15,16,18};

int main()
{
    cin >> A >> B;
    // 2차원 배열을 통해 18 combination n을 구현
    for (int i=0;i<11;i++){
        for (int j=0;j<11;j++){
            double A_com=1,B_com=1;
            double per=1,A_per=1,B_per=1;
            //A_com으로 A가 arr[i](소수가 아닌 수만큼) 번 득점했을 때의 경우의 수를 구함
            //A_per은 arr[i]만큼 득점했을 확률, 18-arr[i]만큼 득점 못했을 확률을 곱함
            for (int k=0;k<arr[i];k++){
                A_com*=(18-k);
                A_com/=(k+1);
                A_per*=(A/100);
            }
            for (int k=0;k<18-arr[i];k++){
                A_per*=(100-A)/100;
            }
            //B도 마찬가지
            for (int k=0;k<arr[j];k++){
                B_com*=(18-k);
                B_com/=(k+1);
                B_per*=(B/100);
            }
            for (int k=0;k<18-arr[j];k++){
                B_per*=(100-B)/100;
            }
            //A_com*A_per은 A가 arr[i]만큼 득점할 확률
            //B_com*B_per은 B가 arr[j]만큼 득점할 확률
            //모두 곱하면 A와 B 모두 소수가 아닌 숫자만큼 득점할 확률
            per*=A_com*A_per*B_com*B_per;
            ret+=per;
        }
        
    }
    // 1-(A와 B모두 소수가 아닌 숫자만큼 득점할 확률)=적어도 한 팀이 소수로 득점할 확룰
    printf("%f",1-ret);
}

문제 해설과는 다르게 조합을 이용해서 풀었는데 결과가 맞지 않습니다. 예제 1번과 2번은 맞는데 어떤 부분이 잘못되었는지 알려주시면 감사하겠습니다 ㅠㅠ

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 JOXXEPㅎㅎ

조합이라고 했을 때 모든 경우의 수를 의미하는데요. ㅎㅎ

이 문제를 보면 총 18번의 경기를 해야 하며 4^18의 경우의 수가 나오는데요.

    cin >> A >> B;
    // 2차원 배열을 통해 18 combination n을 구현
    for (int i=0;i<11;i++){
        for (int j=0;j<11;j++){
            double A_com=1,B_com=1;
            double per=1,A_per=1,B_per=1;
            //A_com으로 A가 arr[i](소수가 아닌 수만큼) 번 득점했을 때의 경우의 수를 구함
            //A_per은 arr[i]만큼 득점했을 확률, 18-arr[i]만큼 득점 못했을 확률을 곱함
            for (int k=0;k<arr[i];k++){

이 코드는 제가 보기에 4^18의 모든 경우의 수를 따지는 코드는 아닌 것 같습니다.

그 때문에 틀린 거 같습니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


JOXXEP님의 프로필 이미지
JOXXEP

작성한 질문수

질문하기