[BAEKJOON] 백준 5607: 問題 1 (C#)

2024. 5. 28. 23:07IT/BaekJoon

문제 링크

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

 

 

문제

A と B の 2 人のプレーヤーが, 0 から 9 までの数字が書かれたカードを使ってゲームを行う. 最初に, 2 人は与えられた n 枚ずつのカードを, 裏向きにして横一列に並べる. その後, 2 人は各自の左から 1 枚ずつカードを表向きにしていき, 書かれた数字が大きい方のカードの持ち主が, その 2 枚のカードを取る. このとき, その 2 枚のカードに書かれた数字の合計が, カードを取ったプレーヤーの得点となるものとする. ただし, 開いた 2 枚のカードに同じ数字が書かれているときには, 引き分けとし, 各プレーヤーが自分のカードを 1 枚ずつ取るものとする.

例えば, A,B の持ち札が, 以下の入力例 1 から 3 のように並べられている場合を考えよう. ただし, 入力ファイルは n + 1 行からなり, 1 行目には各プレーヤのカード枚数 n が書かれており, i + 1 行目(i = 1,2,... ,n)には A の左から i 枚目のカードの数字と B の左から i 枚目の カードの数字が, 空白を区切り文字としてこの順で書かれている. すなわち, 入力ファイルの 2 行目以降は, 左側の列が A のカードの並びを,右側の列が B のカードの並びを, それぞれ表している. このとき, ゲーム終了後の A と B の得点は,それぞれ, 対応する出力例に示したものとなる.

 

 

입력

入力ファイルに対応するゲームが終了したときの A の得点と B の得点を, この順に空白を区切り文字として 1 行に出力するプログラムを作成しなさい. ただし, n ≦ 10000 とする.

 

 

출력

アップロードする出力ファイルにおいては, 出力の後(B の得点の後)に改行を入れること.

 

 

 

통과한 답안

namespace _5607
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            int[] scoreA = new int[N];
            int[] scoreB = new int[N];
            int sumA = 0;
            int sumB = 0;

            for (int i = 0; i < N; i++)
            {
                string[] inputs = Console.ReadLine().Split(' ');
                scoreA[i] = int.Parse(inputs[0]);
                scoreB[i] = int.Parse(inputs[1]);

                if (scoreA[i] > scoreB[i])
                {
                    sumA += scoreA[i] + scoreB[i];
                }
                else if (scoreA[i] == scoreB[i])
                {
                    sumA += scoreA[i];
                    sumB += scoreB[i];
                }
                else
                {
                    sumB += scoreA[i] + scoreB[i];
                }
            }

            Console.WriteLine($"{sumA} {sumB}");
        }
    }
}

 

문제는 A와 B의 두 플레이어가 숫자가 적힌 카드를 순서대로 덮어둔 뒤에

한 게임 당 한 장씩 뒤집은 뒤에

숫자가 높은 플레이어가 두 카드를 모두 가져가고,

그 카드에 적힌 숫자만큼의 점수를 얻는다.

(단, 숫자가 같다면 두 선수가 카드를 한 장씩 가져가고 그 만큼의 점수를 얻는다)

 

따라서 문제는 쉽게 해결할 수 있는데,

각각 플레이어의 총점을 선언한 뒤에

이긴 플레이어가 점수를 가져가는 코드를 작성하였다.