본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 8806 : Papier kamień nożyczki

반응형

https://www.acmicpc.net/problem/8806

 

8806번: Papier kamień nożyczki

W pierwszej linii wejścia znajduje się liczba zestawów testowych Z ( 1 <= Z <= 10 ). Pierwsza linia pojedynczego zestawu testowego zawiera liczby X1 Y1 Z1 ( 0 <= X1, Y1, Z1 <= 1,  X1 + Y1 + Z1 = 1) określające z jakim prawdopodobieństwem

www.acmicpc.net

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

test case z, adam의 묵찌빠낼 확률, gosia가 묵찌빠낼 확률, adam의 승률 a, gosia의 승률 g를 선언한 후 적절히 입력받습니다.

📔 풀이과정

다음 공식으로 각자의 승률을 구할 수 있습니다.adam이 이길 확률 = adam묵 * gosia찌 + adam찌 * gosia빠 + adam빠 * gosia묵낼 확률gosia가 이길 확률 = gosia묵 * adam찌 + gosia찌 * adam빠 + gosia빠 * adam묵낼 확률이 값을 계산해 a, g에 각각 저장해줍니다.

📔 정답출력

이길 확률이 더 높은 쪽을 형식에 맞게 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;

double z, adam[3], gosia[3], a, g;

int main(){
  cin >> z;
  while(z--){
    cin >> adam[0] >> adam[1] >> adam[2];
    cin >> gosia[0] >> gosia[1] >> gosia[2];
    a = adam[0] * gosia[1] + adam[1] * gosia[2] + adam[2] * gosia[0];
    g = gosia[0] * adam[1] + gosia[1] * adam[2] + gosia[2] * adam[0];
    if(a > g) cout << "ADAM\n";
    else if(a < g) cout << "GOSIA\n";
    else cout << "=\n";
  }
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.