AtCoder Beginner Contest 168 A〜C問題

前書き

AtCoder Beginner Contest 168 A〜C問題を解きました。

A問題

難易度:灰
時間:2分

atcoder.jp

N = input()
hon,pon,bon = [2,4,5,7,9],[0,1,6,8],[3]
A = int(N[-1])
if A in hon: print('hon')
elif A in pon: print('pon')
elif A in bon: print('bon')

B問題

難易度:灰
時間:2分

atcoder.jp

K = int(input())
S = input()
if len(S)>K: print(S[0:K]+'...')
else: print(S)

C問題

難易度:灰
時間:15分

時計の時針と分針の距離を推定する問題。
0時0分を基準とおいて、時針と分針の角度を算定。
そのあとに時針と分針を三平方の定理を用いて解いていきます。

atcoder.jp

頭の中でアルゴリズムを設計して→全体を把握→スムーズに実装できた好例です。

import math
A,B,H,M = map(int, input().split())
_M = M/60*360
_H = (((H+M/60)%12)/12)*360

sinDelta = abs(math.sin(math.radians(_M))*B-math.sin(math.radians(_H))*A)
cosDelta = abs(math.cos(math.radians(_M))*B-math.cos(math.radians(_H))*A)
print(math.sqrt(sinDelta**2+cosDelta**2))