AtCoder Beginner Contest 146の解説記事です。
目次
ABC146 A – Can’t Wait for Holiday
問題
問題文の要約は以下の通りです。
問題の要約
文字列SUN
,MON
,TUE
,WED
,THU
,FRI
,SAT
のいずれかを与え、それぞれ日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、土曜日を表しているとき、次の日曜日まであと何日か求めよ。
制約
・\(S\) はSUN
,MON
,TUE
,WED
,THU
,FRI
,SAT
のいずれかの文字列
入力
\(S\)
出力
答えを出力せよ。
解法1
if
文で条件分岐を行う。
解説
まず入力を \(S\) で受け取ります。
S = input()
\(S\) は SUN
のとき7
、 MON
のとき6
、TUE
のとき5
、 WED
のとき4
、THU
のとき3
、FRI
のとき2
、SAT
のとき1
を出力します。
if S == "SUN":
print(7)
elif S == "MON":
print(6)
elif S == "TUE":
print(5)
elif S == "WED":
print(4)
elif S == "THU":
print(3)
elif S == "FRI":
print(2)
elif S == "SAT":
print(1)
解答
S = input()
if S == "SUN":
print(7)
elif S == "MON":
print(6)
elif S == "TUE":
print(5)
elif S == "WED":
print(4)
elif S == "THU":
print(3)
elif S == "FRI":
print(2)
elif S == "SAT":
print(1)
解法2
曜日を配列として持つ。
解説
入力として受け取る可能性のある曜日を配列で持っておきます。
yobi=['SUN','MON','TUE','WED','THU','FRI','SAT']
入力を受け取り、順に比較して一致したら配列の7-i
が答えになります。
S=input()
for i in range(7):
if S==yobi[i]:
print(7-i)
解答
yobi=['SUN','MON','TUE','WED','THU','FRI','SAT']
S=input()
for i in range(7):
if S==yobi[i]:
print(7-i)