AtCoder ABC 001 B – 視程の通報 Python解説

2021年11月27日

スポンサーリンク

B – 視程の通報

AtCoder ABC 001 B – 視程の通報を見ていきます。問題はこちら

以下に問題文の一部を抜粋。

0.1km 未満: VVの値は 00 とする。

0.1km 以上 5km 以下:距離(km) を 10倍した値とする。1 桁の場合は上位に 0 を付す。例えば、2,000m =2.0km ならば、VVは 20 である。同じく、200mの場合VVは 02 である。

6km 以上 30km 以下:距離 (km) に 50 を足した値とする。例えば、15,000m =15km ならば、VVは 65である。

35km 以上 70km 以下:距離 (km) から 30を引いて 5で割った後、80を足した値とする。例えば、40,000m =40km ならば、VVは 82である。

70km より大きい:VVの値は 89とする。

AtCoder株式会社 AtCoder Beginner Contest 001-B 「視程の通報」

特に難しいところはないと思います。ただ、条件分岐が多く、入力はm(メートル)、条件はkmで指定されていることに注意しましょう。

と、いうわけで条件を愚直に解いていきます。

m = int(input()) / 1000

if m < 0.1:
    print("00")

elif m >= 0.1 and m <= 5:
    if m < 1:
        m *= 10
        m = int(m)
        m = str(m)
        print("0" + m)
    else:
        print(int(m * 10))

elif m >= 6 and m <= 30:
    print(int(m + 50))

elif m >= 35 and m <= 70:
    m = (m - 30) / 5 + 80
    print(int(m))

elif m >= 70:
    print(89)