【AtCoder】ABC337解説(Python)

トヨタ自動車プログラミングコンテスト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

問題

問題文の要約は以下の通りです。

問題の要約

ABC からなる文字列 \(S\) が与えられたとき、その文字列がAを0文字以上、 Bを0文字以上、Cを0文字以上順に並べた文字列であるかを判定せよ。 

制約

・\(S\) は ABC からなる文字列
・\(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')
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次