今日の曜日が文字列Sで与えられ、次の日曜日が何日後なのかを求める問題です。
曜日ごとにif文を作ってゴリ押しでもできますが、もっと短く簡単に解くことができます。
提出
week_l = "SUN,MON,TUE,WED,THU,FRI,SAT".split(",")
s = input()
n = week_l.index(s)
print(7 - n)
問題文から曜日をコピペで持ってきて、曜日のリストを作成します。
week_l = "SUN,MON,TUE,WED,THU,FRI,SAT".split(",")
# week_l = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
入力された文字列が、リストの何番目にあるかを取得します。
リストのインデックスは0から始まるため、入力が「SUN」だった場合、「n = 0」となります。
7からnを引けば、次の日曜日が何日後なのかを求めることができます。
split()メソッド
split()メソッドは、区切り文字を指定して、文字列を分割します。
区切り文字を指定しない場合、空白、タブ、改行で分割されます。
str.split("区切り文字")
index()メソッド
index()メソッドは、調べたい値を指定すると、リストのインデックス(0始まり)が取得できます。
l.index(値)
以下のようにまとめることもできます。
提出
week_l = "SUN,MON,TUE,WED,THU,FRI,SAT".split(",")
print(7 - week_l.index(input()))
余談ですが、自分はコンテスト本番は↓こんな感じにやっていました。。。
お勧めしませんw がこれでも問題なくACできます。
提出
s = input()
if s == 'SUN':
ans = 7
elif s == 'MON':
ans = 6
elif s == 'TUE':
ans = 5
elif s == 'WED':
ans = 4
elif s == 'THU':
ans = 3
elif s == 'FRI':
ans = 2
else:
ans = 1
print(ans)