トヨタ自動車プログラミングコンテスト2023#7(AtCoder Beginner Contest 328)の解説記事です。
ABC328 A – Not Too Hard
問題
問題文の要約は以下の通りです。
問題の要約
\(N\) 問の問題が出題されるプログラミングコンテストがあり、\(i\) 問目の配点が \(S_i\) であるとき、配点が \(X\) 以下である問題すべての配点の合計を出力せよ。
制約
・入力される値は全て整数
・\(4 \le N \le 8\)
・\(100 \le S_i \le 675\)
・\(100 \le X \le 675\)
入力
\(N\) \(X\)
\(S_1\) \(S_2\) \(\cdots\) \(S_N\)
出力
答えを出力せよ。
解説
配点が \(X\) 以下である問題の配点を足し合わせる。
解説
\(N\), \(X\) をint
型、\(S\) をlist
として受け取ります。
# 入力
N,X=map(int,input().split())
S=list(map(int,input().split()))
答えを初期値0
で用意します。
# 答え(初期値0)
ans=0
配点が \(X\) 以下であれば答えに配点をプラスします。
# 配点が X 以下であれば答えに配点をプラスする。
for s in S:
if s<=X:
ans+=s
最後に答えを出力します。
# 答えを出力
print(ans)
解答
# 入力
N,X=map(int,input().split())
S=list(map(int,input().split()))
# 答え(初期値0)
ans=0
# 配点が X 以下であれば答えに配点をプラスする。
for s in S:
if s<=X:
ans+=s
# 答えを出力
print(ans)
ABC328 B – 11/11
問題
問題文の要約は以下の通りです。
問題の要約
1年が \(N\) か月、 \(i\) 月(\(1 \le i \le N\))は \(D_i\) 日からなるとき、1年のうち日付がゾロ目になる日が何日あるか求めよ。
制約
・\(1 \le N \le 100\)
・\(1 \le D_i \le 100\) (\(1 \le i \le N\))
・入力はすべて整数
入力
\(N\)
\(D_1\) \(D_2\) \(\cdots\) \(D_N\)
出力
答えを出力せよ。
解説
実際に日付を作りゾロ目になっているか判定する。
解説
まず、入力 \(N\) をint
型、\(D_1\) \(D_2\) \(\cdots\) \(D_N\)をlist
で受け取ります。
# 入力
N=int(input())
D=list(map(int,input().split()))
答えのゾロ目になる日数ans
を変数として用意します。
# 答え(ゾロ目になる日数)
ans=0
1月から \(N\) 月までループ、そのループの中で1日から \(D\) 日までループします。
月と日の文字列を結合し、文字列が1種類の文字からなるかどうかで判定します。
ゾロ目であれば答えを+1
します。最後に答えを出力します。
# 1月からN月までループ
for m in range(1,N+1):
# 1日からD日までループ(mは1からループしているので[m-1]とする)
for d in range(1,D[m-1]+1):
# 月と日の文字列が1種類の文字からなる⇒ゾロ目
if len(set(str(m)+str(d)))==1:
ans+=1
# 出力
print(ans)
解答
# 入力
N=int(input())
D=list(map(int,input().split()))
# 答え(ゾロ目になる日数)
ans=0
# 1月からN月までループ
for m in range(1,N+1):
# 1日からD日までループ(mは1からループしているので[m-1]とする)
for d in range(1,D[m-1]+1):
# 月と日の文字列が1種類の文字からなる⇒ゾロ目
if len(set(str(m)+str(d)))==1:
ans+=1
# 出力
print(ans)