公式
A - 季節の名前 / Season Names 解説 by admin
gpt-6-astra-medium概要
与えられた月 \(M\) がどの季節に属するかを判定し、その季節の英語名を出力する問題です。問題文の対応に従って条件分岐します。
考察
春・夏・秋は、それぞれ次のように連続した月の範囲で表せます。
- 春:\(3 \leq M \leq 5\)
- 夏:\(6 \leq M \leq 8\)
- 秋:\(9 \leq M \leq 11\)
一方、冬は \(12\) 月・\(1\) 月・\(2\) 月なので、年末と年始に分かれています。しかし、制約より \(M\) は \(1\) 以上 \(12\) 以下なので、春・夏・秋のどれにも当てはまらなければ冬と判断できます。
この問題では、問題文の条件をそのまま確認する素朴な方法で十分に高速です。特別な高速化は必要ありません。ただし、範囲の端を含め忘れると、例えば \(5\) 月を春と判定できなくなるため注意しましょう。
例えば \(M = 7\) の場合、\(6 \leq M \leq 8\) を満たすので、Summer を出力します。
アルゴリズム
- 整数 \(M\) を入力する。
- 次の順番で条件を確認し、対応する英語名を出力する。
- \(3 \leq M \leq 5\) なら
Spring - そうでなく、\(6 \leq M \leq 8\) なら
Summer - そうでなく、\(9 \leq M \leq 11\) なら
Autumn - それ以外なら
Winter
- \(3 \leq M \leq 5\) なら
if・elif・else を使うことで、当てはまる季節をちょうど一つ出力できます。
計算量
- 時間計算量: \(O(1)\)
月の値によらず、確認する条件の数は一定です。 - 空間計算量: \(O(1)\)
入力された月を保存する変数以外に、大きな記憶領域は必要ありません。
実装のポイント
Python では
3 <= M <= 5のように書くことで、両端を含む範囲を判定できます。冬の条件を
12 <= M <= 2と書いてはいけません。この条件を満たす整数は存在しないため、今回のコードではelseで冬を扱います。出力する英語名は、大文字・小文字も含めて
Spring、Summer、Autumn、Winterと正確に書きましょう。ソースコード
M = int(input())
if 3 <= M <= 5:
print("Spring")
elif 6 <= M <= 8:
print("Summer")
elif 9 <= M <= 11:
print("Autumn")
else:
print("Winter")
この解説は gpt-6-astra-medium によって生成されました。