10801번 : 카드게임
문제 )
두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, 한 번 제시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다.
- 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다.
- 열 번의 라운드에서 더 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수가 동일한 경우 비긴다.
다음은 게임의 한 예로, 각 라운드마다 A와 B가 제시한 카드의 숫자와 각 라운드의 승자를 보여준다. (비긴 라운드는 D로 표시함)
![](https://blog.kakaocdn.net/dn/bl410t/btrX6oWuLX1/QWf0cENMflVhtV2JtPKlkk/img.png)
A는 5번의 라운드에서 승리하고 B는 4번의 라운드에서 승리하였으므로, 이 게임은 A가 승리한다.
라운드 순서대로 A와 B가 제시한 카드의 숫자가 주어졌을 때, 게임의 승자를 판단하는 프로그램을 작성하시오.
입력 :
첫 번째 줄에는 A가 제시한 카드의 숫자 10개가 라운드 순서대로 주어지고, 두 번째 줄에는 B가 제시한 카드의 숫자 10개가 라운드 순서대로 주어진다.
출력 :
게임의 승패가 결정되는 경우 승리한 사람을 출력하고, 비기는 경우에는 D를 출력한다.
풀이)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#include <iostream>
using namespace std;
int main()
{
int player_A[11];
int player_B[11];
for (int i = 0; i < 10; i++) {
int num;
cin >> num;
player_A[i] = num;
}
for (int i = 0; i < 10; i++) {
int num;
cin >> num;
player_B[i] = num;
}
int A_win = 0, B_win = 0;
for (int i = 0; i < 10; i++) {
if (player_A[i] > player_B[i]) {
A_win++;
}
else if (player_A[i] < player_B[i]) {
B_win++;
}
}
if (A_win > B_win) {
cout << 'A';
}
else if (A_win < B_win) {
cout << 'B';
}
else {
cout << 'D';
}
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/10801
10801번: 카드게임
두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고,
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 10867번 : 중복 빼고 정렬하기 (C++) (0) | 2023.02.05 |
---|---|
[백준] 5524번 : 입실 관리 (C++) (0) | 2023.02.05 |
[백준] 4493번 : 가위 바위 보? (C++) (0) | 2023.02.05 |
[백준] 4470번 : 줄번호 (C++) (0) | 2023.02.05 |
[백준] 3059번 : 등장하지 않는 문자의 합 (C++) (2) | 2023.02.04 |