私の記録ブログ

趣味の記録

atcoder abc_001 を解いてみた(python3)

-A. [AC]積雪深差

# -*- coding: utf-8 -*-

h1 = int(input())
h2 = int(input())

print(h1-h2)

読み取って、引き算。

-B. [AC]視程の通報

# -*- coding: utf-8 -*-

m = int(input())

km = m/1000
vv = 0

if km <0.1:
    vv = 0
elif km<= 5:
    vv = km*10
elif km <= 30:
    vv = km+50
elif km <=70:
    vv = (km-30)/5+80
elif km > 70:
    vv = 89

print('{:0>2}'.format(int(vv)))

メートルをキロに直して、条件分け。
二桁で出力するために置換フィールド{}を使った。
Python, formatで書式変換(0埋め、指数表記、16進数など) | note.nkmk.me



-C. 風力観測 [WA 58/66]
[WA]になってしまう。誤差がどうとか・・・。

# -*- coding: utf-8 -*-

deg ,dis = map(int,input().split())

d_lst = ['N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW']
w_lst = [0.2,1.5,3.3,5.4,7.9,10.7,13.8,17.1,20.7,24.4,28.4,32.6]

deg = deg/10+11.25
num = deg//22.5
s = int(dis/6+0.5)/10

for i in range(len(w_lst)):
    if s <= w_lst[i]:
        w = i
        break
    else:
        w = 12

if w ==0:
    dir = 'C'
else:
    dir = d_lst[int(num)]

print(dir, w)

四捨五入するためにround()を使っていたが、round(2.5)は2に丸まるのでやめた。
小数第一位を四捨五入するには、0.5を足して小数を切り捨てればいい。


-D. 感雨時刻の整理