2024. 5. 28. 23:07ㆍIT/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의 두 플레이어가 숫자가 적힌 카드를 순서대로 덮어둔 뒤에
한 게임 당 한 장씩 뒤집은 뒤에
숫자가 높은 플레이어가 두 카드를 모두 가져가고,
그 카드에 적힌 숫자만큼의 점수를 얻는다.
(단, 숫자가 같다면 두 선수가 카드를 한 장씩 가져가고 그 만큼의 점수를 얻는다)
따라서 문제는 쉽게 해결할 수 있는데,
각각 플레이어의 총점을 선언한 뒤에
이긴 플레이어가 점수를 가져가는 코드를 작성하였다.
'IT > BaekJoon' 카테고리의 다른 글
[BAEKJOON] 백준 2511: 카드놀이 (C#) (0) | 2024.05.30 |
---|---|
[BAEKJOON] 백준 5724: 파인만 (C#) (0) | 2024.05.28 |
[BAEKJOON] 백준 5365: Decoder (C#) (0) | 2024.05.28 |
[BAEKJOON] 백준 2204: 도비의 난독증 테스트 (C#) (0) | 2024.05.28 |
[BAEKJOON] 백준 1952: 달팽이2 (C#) (0) | 2024.05.28 |