トヨタ自動車プログラミングコンテスト2024#1(AtCoder Beginner Contest 337)の解説記事です。
ABC337 A – Scoreboard
問題
問題文の要約は以下の通りです。
問題の要約
チーム高橋とチーム青木が \(N\) 回の試合を行いました。\(i\) 回目 \(( 1 \le i \le N )\) の試合ではチーム高橋が \(X_i\) 点、チーム青木が \(Y_i\) 点獲得したとき、\(N\) 回の試合で得点が多いチームを出力せよ。
制約
・\(1 \le N \le 100\)
・\(1 \le X_i \le 100\) \(( 1 \le i \le N )\)
・\(1 \le Y_i \le 100\) \(( 1 \le i \le N )\)
・入力はすべて整数
入力
\(N\)
\(X_1\) \(Y_1\)
\(X_2\) \(Y_2\)
\(\vdots\)
\(X_N\) \(Y_N\)
出力
チーム高橋が勝った場合 Takahashi
を、チーム青木が勝った場合 Aoki
を、引き分けの場合 Draw
を出力せよ。
解説
チーム高橋の点数とチーム青木の点数を変数として持ち、各回の点数を加算して比較する。
解説
\(N\) をint
型で受け取ります。
チーム高橋の点数を表す変数をTakahashi
、チーム青木の点数を表す変数をAoki
として初期値0
とします。
# 入力
N=int(input())
# チーム高橋の点数
Takahashi=0
# チーム青木の点数
Aoki=0
\(N\) 回の試合の点数を受け取りチーム高橋とチーム青木の点数を表す変数に加算します。
# N 回の試合の点数を受け取り加算する
for _ in range(N):
x,y=map(int,input().split())
Takahashi+=x
Aoki+=y
最後に解答を出力します。
# 解答を出力する
print('Takahashi' if Takahashi>Aoki else 'Aoki' if Takahashi<Aoki else 'Draw')
解答
# 入力
N=int(input())
# チーム高橋の点数
Takahashi=0
# チーム青木の点数
Aoki=0
# N 回の試合の点数を受け取り加算する
for _ in range(N):
x,y=map(int,input().split())
Takahashi+=x
Aoki+=y
# 解答を出力する
print('Takahashi' if Takahashi>Aoki else 'Aoki' if Takahashi<Aoki else 'Draw')
ABC337 B – Extended ABC
問題
問題文の要約は以下の通りです。
問題の要約
A
, B
, C
からなる文字列 \(S\) が与えられたとき、その文字列がA
を0文字以上、 B
を0文字以上、C
を0文字以上順に並べた文字列であるかを判定せよ。
制約
・\(S\) は A
, B
, C
からなる文字列
・\(S\) の長さは1以上100以下
入力
\(S\)
出力
条件を満たす字列ならば Yes
を、そうでなければ No
を出力せよ。
解説
文字列が条件を満たさないかどうかで判定する。
解説
まず入力 \(S\) を文字列として受け取ります。
# 入力
S=input()
文字列 \(S\) がBA
またはCB
またはCA
を含むときは条件を満たさないのでNo
を出力します。
含まないときは条件を満たすのでYes
を出力します。
# 条件を満たさない文字列が存在するか?
if 'BA' in S or 'CB' in S or 'CA' in S:
print('No')
else:
print('Yes')
解答
# 入力
S=input()
# 条件を満たさない文字列が存在するか?
if 'BA' in S or 'CB' in S or 'CA' in S:
print('No')
else:
print('Yes')