公式

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 を出力します。

アルゴリズム

  1. 整数 \(M\) を入力する。
  2. 次の順番で条件を確認し、対応する英語名を出力する。
    • \(3 \leq M \leq 5\) なら Spring
    • そうでなく、\(6 \leq M \leq 8\) なら Summer
    • そうでなく、\(9 \leq M \leq 11\) なら Autumn
    • それ以外なら Winter

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 によって生成されました。