【AtCoder】ABC307解説(Python)

AtCoder_ABC307

東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 307)の解説記事です。

ABC307 A – Weekly Records

問題

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

問題の要約

\(A_{1}\), \(A_{2}\), \(\cdots\), \(A_{7N}\) を与えたとき、\(B_{i} = A_{7i-6} + A_{7i-5} + \cdots + A_{7i}\) を求めよ。(\(i = 1, 2, \cdots, N\))

制約

・\(1 \le N \le 10\)
・\(1 \le A_{i} \le 10^{5}\)
・入力は整数

入力

\(N\)
\(A_{1}\) \(A_{2}\) \(\cdots\) \(A_{7N}\)

出力

\(B_{1}\) \(B_{2}\) \(\cdots\) \(B_{7N}\)

解法

Aを7回足したら出力するを繰り返す。

解説

まず入力 \(N\) をint型、\(A\) をlistとして受け取ります。

N=int(input())
A=list(map(int,input().split()))

出力に使うための変数 \(B\) を初期値0で、何回足し合わせたかをカウントする変数cntを初期値0で用意します。

B=0
cnt=0

i0から7Nまでfor文でループさせ、 \(B\) にA[i]cnt1を足します。
7回足し合わせたら \(B\) を出力し、 \(B\) とcntを0に戻します。

for i in range(7*N):
  B+=A[i]
  cnt+=1
  if cnt==7:
    print(B,end=' ')
    B=0
    cnt=0

解答

N=int(input())
A=list(map(int,input().split()))
B=0
cnt=0
for i in range(7*N):
  B+=A[i]
  cnt+=1
  if cnt==7:
    print(B,end=' ')
    B=0
    cnt=0
1 2
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!