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\) 月に分かれているため、条件の書き方には注意が必要です。
今回のコードでは、月をキー、季節の英語名を値とする辞書を使い、範囲の判定をせずに答えを取得しています。
アルゴリズム
- 入力を整数として読み込み、変数
mに格納します。 - 各月と季節の英語名を対応させた辞書
tableを作ります。 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 によって生成されました。