atcoder abc_119 を解いてみた(python3)
-A. [AC]Still TBD
# -*- coding: utf-8 -*- y,m,d = map(int, input().split('/')) if y < 2019: print('Heisei') elif y == 2019 and m <= 4: print('Heisei') else: print('TBD')
split('/')をつけることで数字ごとに取得。
そして条件で分ける。
-B. [AC]Digital Gifts
# -*- coding: utf-8 -*- n = int(input()) ans = 0 for i in range(n): x,u = input().split() if u == 'JPY': ans = ans + float(x) else: ans = ans + float(x)*380000 print(ans)
一行ずつ受け取るたびに 'JPY' or 'JPYではない 'で分けて、
合計に足していく。
-C. Synthetic Kadomatsu
-D. Lazy Faith
今回のコンテスト後のレート
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. 感雨時刻の整理