본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 10801 카드게임

 

 

Baekjoon Online Judge

 

10801번: 카드게임

두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고,

www.acmicpc.net

 

 

[문제]

두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, 한 번 제시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다.

 

  1. 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다.
  2. 열 번의 라운드에서 더 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수가 동일한 경우 비긴다.

다음은 게임의 한 예로, 각 라운드마다 A와 B가 제시한 카드의 숫자와 각 라운드의 승자를 보여준다. (비긴 라운드는 D로 표시함)

 

A는 5번의 라운드에서 승리하고 B는 4번의 라운드에서 승리하였으므로, 이 게임은 A가 승리한다.

라운드 순서대로 A와 B가 제시한 카드의 숫자가 주어졌을 때, 게임의 승자를 판단하는 프로그램을 작성하시오.

 

 

[입력]

첫 번째 줄에는 A가 제시한 카드의 숫자 10개가 라운드 순서대로 주어지고, 두 번째 줄에는 B가 제시한 카드의 숫자 10개가 라운드 순서대로 주어진다.

 

 

[출력]

게임의 승패가 결정되는 경우 승리한 사람을 출력하고, 비기는 경우에는 D를 출력한다.

 

 


 

[코드]

#include <iostream>
using namespace std;

int main()
{
    int A[10], B[10], sumA = 0, sumB = 0;

    for (int i = 0; i < 10; i++)
        cin >> A[i];

    for (int i = 0; i < 10; i++)
        cin >> B[i];

    for (int i = 0; i < 10; i++)
    {
        if (A[i] > B[i])
            sumA++;
        else if (A[i] < B[i])
            sumB++;
    }

    if (sumA > sumB)
        cout << "A" << '\n';
    else if (sumA < sumB)
        cout << "B" << '\n';
    else if (sumA == sumB)
        cout << "D" << '\n';

    return 0;
}

 

 

 

'Baekjoon > C++' 카테고리의 다른 글

[C++][BOJ/백준] 2959 거북이  (1) 2024.03.29
[C++][BOJ/백준] 18406 럭키 스트레이트  (0) 2024.03.24
[C++][BOJ/백준] 15969 행복  (0) 2024.03.22
[C++][BOJ/백준] 2789 유학 금지  (0) 2024.03.20
[C++][BOJ/백준] 4597 패리티  (0) 2024.03.16