AtCoder ABC 126 B – YYMM or MMYY Python解説
YYMM or MMYY
長さ 4 の数字列 S が与えられます。あなたは、この数字列が以下のフォーマットのどちらであるか気になっています。
YYMM フォーマット: 西暦年の下 2 桁と、月を 2 桁で表したもの (例えば 1 月なら
01
) をこの順に並べたもの
MMYY フォーマット: 月を 2 桁で表したもの (例えば 1 月なら01
) と、西暦年の下 2 桁をこの順に並べたもの与えられた数字列のフォーマットとして考えられるものが YYMM フォーマットのみである場合
AtCoder Beginner Contest 「YYMM or MMYY」YYMM
を、 MMYY フォーマットのみである場合MMYY
を、 YYMM フォーマット と MMYY フォーマットのどちらの可能性もある場合AMBIGUOUS
を、 どちらの可能性もない場合NA
を出力してください。
Pythonでは文字列も数値と同じように比較演算子を使えるので、あとは数字列を2つに分け、YYMMフォーマットかMMYYフォーマットか、もしくはそれ以外かを条件文で分けていきます。
s = input()
a = s[:2]
b = s[2:]
if "01" <= a <= "12":
if b == "00" or "13" <= b <= "99":
print("MMYY")
else:
print("AMBIGUOUS")
elif "01" <= b <= "12":
if a == "00" or "13" <= a <= "99":
print("YYMM")
else:
print("AMBIGUOUS")
else:
print("NA")
数字列の前半2つをa、後半2つをbとし、条件文を使っていきます。MMは01から12までの範囲で、YYは00から99までの範囲を取ります。あとはaとb、考えられるパターンを出力すれば大丈夫です。