競技プログラミング

AtCoder Beginner Contest 307 A – Weekly Records

画像クリックで問題に飛べます

問題の要素解説

この問題は、高橋君が毎日歩いた歩数から、各週の歩数の合計を求めるシンプルな問題です。ただし、ここで注意すべきは、入力として一度に与えられる歩数のデータが全ての日に対して与えられるという点です。したがって、この問題は主に以下の要素から成り立っています:

  1. 歩数データの収集:各日の歩数を配列またはリストとして読み取ります。
  2. 週ごとの歩数の計算:読み取った歩数データから、各週の歩数の合計を計算します。

解答戦略

この問題は基本的な配列操作とシンプルな算術を組み合わせることで解決できます。具体的には、以下の手順で解答を進めます:

  1. まず、入力から全ての歩数データを読み取ります。これは、単純に各日の歩数を一つの配列に格納することで実現できます。
  2. 次に、配列を7要素ずつのグループ(各週)に分割します。これは、配列のスライスや特定の範囲を取り出す機能を用いて実現できます。
  3. 各週に対して、その週の歩数の合計を計算します。これは、各グループの全ての要素を足し合わせることで実現できます。
  4. 最後に、計算した週ごとの歩数の合計を出力します。

以上がこの問題の解答戦略です。次に、具体的なコードを書いてみましょう。

コードの解説

ここでは、上記の解答戦略を元に、問題を解くためのSwiftコードを書いてみます。

llet N = Int(readLine()!)!
let A = readLine()!.split(separator: " ").map { Int($0)! }

for week in 0..<N {
    var total = 0
    for day in 0..<7 {
        total += A[week * 7 + day]
    }
    print(total, terminator: " ")
}

for week in 0..上記のコードは、まず週数Nと各日の歩数Aを入力として受け取ります。次に、週数Nについてループを行い、その週に歩いた合計歩数を計算しています。具体的には、週ごとに7日間をループしてその日に歩いた歩数を合計に加えています。そして、その週の合計歩数を出力しています。全ての週についてこれを行い、各週の歩数の合計を空白区切りで出力しています。

このコードは、各週の歩数を一つずつ取り出し、それぞれの週の歩数の合計を計算しています。そして、その合計を結果として出力しています。

コード全文

それでは、全体のコードを確認しましょう。

let N = Int(readLine()!)!
let A = readLine()!.split(separator: " ").map { Int($0)! }

for week in 0..<N {
    var total = 0
    for day in 0..<7 {
        total += A[week * 7 + day]
    }
    print(total, terminator: " ")
}

for week in 0..以上が、この問題を解くための全体のコードです。全ての日の歩数を一つの配列に格納し、その配列を週ごとに分割して各週の歩数の合計を計算し、それを出力しています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です