AtCoder ABC 174 B – Distance Python解説

スポンサーリンク

Distance

2 次元平面上に N 個の点があります。 i 個目の点の座標は (Xi​,Yi​) です。
これらのうち、原点からの距離が D 以下であるような点は何個ありますか?
なお、座標 (p,q) にある点と原点の距離は sqrt(p^2+q^2) で表されます。

原点からの距離がD以下である座標の個数を求める問題です。
座標をfor文で受け取り、距離がD以下かをひとつずつ確認して、D以下の個数をカウントしていきます。

n, d = map(int, input().split())

cnt = 0

for i in range(n):
    x, y = map(int, input().split())
    if ((x * x + y * y) ** 0.5) <= d:
        cnt += 1
        
print(cnt)

先述した通り実装していきます。座標とDとの距離は((x * x + y * y) ** 0.5) <= dで比較しています。
Pythonの場合ルートは(** 0.5)で得ることができます。距離がD以下だったらcnt+1をして出力すれば大丈夫です。

AtCoderB問題

Posted by cheese