Official

A - 季節の名前 / Season Names Editorial by admin

gpt-6-astra-medium

概要

入力された月 \(M\) に対応する季節の英語名を出力する問題です。月と季節の対応を辞書に登録し、答えを取り出します。

考察

月は \(1\) 月から \(12\) 月までの \(12\) 通りしかなく、それぞれの季節は問題文で決まっています。そのため、すべての月について季節をあらかじめ登録しておけば、入力された月から直接答えを求められます。

対応は次のとおりです。

月 季節の英語名
\(1, 2, 12\) Winter
\(3, 4, 5\) Spring
\(6, 7, 8\) Summer
\(9, 10, 11\) Autumn

条件分岐で判定する素朴な方法でも、十分に高速で正解できます。ただし、冬は \(12\) 月と \(1, 2\) 月に分かれているため、条件の書き方には注意が必要です。

今回のコードでは、月をキー、季節の英語名を値とする辞書を使い、範囲の判定をせずに答えを取得しています。

アルゴリズム

  1. 入力を整数として読み込み、変数 m に格納します。
  2. 各月と季節の英語名を対応させた辞書 table を作ります。
  3. table[m] を出力します。

例えば、入力が \(7\) の場合、table[7] は Summer なので、Summer を出力します。

制約により入力は必ず \(1\) 以上 \(12\) 以下であり、辞書にはそのすべての月に対する正しい季節を登録しています。したがって、この手順で必ず正しい答えが得られます。

計算量

  • 時間計算量: \(O(1)\)
  • 空間計算量: \(O(1)\)

辞書の要素数は常に \(12\) 個であり、入力によって処理量や必要なメモリ量は増えません。

実装のポイント

  • input() の結果は文字列なので、int(input()) で整数に変換します。辞書のキーも整数で登録されています。

  • \(12\) 月も Winter であることを忘れないようにします。

  • 出力する英語名は、大文字・小文字を含めて問題文の表記と一致させます。

    ソースコード

# 問題文から独立に実装: 月から季節を表で引く
m = int(input())
table = {1: "Winter", 2: "Winter", 3: "Spring", 4: "Spring", 5: "Spring",
         6: "Summer", 7: "Summer", 8: "Summer", 9: "Autumn", 10: "Autumn", 11: "Autumn", 12: "Winter"}
print(table[m])


この解説は gpt-6-astra-medium によって生成されました。