[백준 8806] Papier kamień nożyczki (C#, C++) - soo:bak
작성일 :
문제 링크
8806번 - Papier kamień nożyczki
설명
Adam
과 Gosia
가 ‘가위 바위 보’ 게임을 했을 때, 각각이 어떤 것을 낼 지에 대한 확률을 바탕으로 승자를 추측하는 문제입니다.
입력으로 각 플레이어가 가위를 낼 확률, 바위를 낼 확률, 보를 낼 확률 이 주어졌을 때,
각각의 경우에 대한 확률을 계산하여 승자가 누구일 지 판별하여 이름을 출력합니다.
만약, 두 플레이어가 승리할 확률이 동일하다면, =
를 출력합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace Solution {
class Program {
static void Main(string[] args) {
var t = int.Parse(Console.ReadLine()!);
for (int i = 0; i < t; i++) {
var input = Console.ReadLine()!.Split(' ');
var x1 = double.Parse(input[0]);
var y1 = double.Parse(input[1]);
var z1 = double.Parse(input[2]);
input = Console.ReadLine()!.Split(' ');
var x2 = double.Parse(input[0]);
var y2 = double.Parse(input[1]);
var z2 = double.Parse(input[2]);
var adamWin = x1 * y2 + y1 * z2 + z1 * x2;
var gosiaWin = x2 * y1 + y2 * z1 + z2 * x1;
if (adamWin > gosiaWin) Console.WriteLine("ADAM");
else if (adamWin < gosiaWin) Console.WriteLine("GOSIA");
else Console.WriteLine("=");
}
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t; cin >> t;
for (int i = 0; i < t; i++) {
double x1, y1, z1, x2, y2, z2;
cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
double adamWin = x1 * y2 + y1 * z2 + z1 * x2;
double gosiaWin = x2 * y1 + y2 * z1 + z2 * x1;
if (adamWin > gosiaWin) cout << "ADAM\n";
else if (adamWin < gosiaWin) cout << "GOSIA\n";
else cout << "=\n";
}
return 0;
}