曜日の判定

ある月の 1 日は日曜日、 2 日は月曜日...です。X日は何曜日でしょう。


#入力

X

 

 

#出力

答えとなる曜日Sを短縮した表記で出力してください。具体的に、日曜日の場合はSun、月曜日の場合はMon、火曜日の場合はTue、水曜日の場合はWed、木曜日の場合はThu、金曜日の場合はFri、土曜日の場合はSatを出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。

S

 

 

#コード

a = int(input())

ans = a % 7

if ans == 1:
    print("Sun")
elif ans == 2:
    print("Mon")
elif ans == 3:
    print("Tue")
elif ans == 4:
    print("Wed")
elif ans == 5:
    print("Thu")
elif ans == 6:
    print("Fri")
elif ans == 0:
    print("Sat")
else:
    print("err")

 

 

#参考

x = int(input())
week = ["Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"]

print(week[x % 7])

  • 曜日は 7 つの曜日が順に巡っているだけなので、7 で割ったときの余りが使えることを考えます。
  • リストと 7 で割ったときの余りを用いて、x 日の曜日を求めます。
  • 【 詳しい説明 】
    • 例えば、金曜日の 8 日後の曜日は 8 % 7 日後、つまり 1 日後の曜日と同じなので、土曜日となります。
    • 今回、1 日が日曜日なので、7 で割って 1 余る日付が日曜日となります。
    • 後は、曜日の順に余りと曜日が一致するので、日曜日のインデックスが 1 となるような順番で曜日を並べたリストを作成します。
    • インデックスは余り、要素は余りに対応する曜日、となるリストを下のように定義します。
      • ["Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"]
    • 上記のリストに対して x % 7 というインデックスでアクセスすることで対応する曜日を取り出すことができます。