中野's workspace

  • Profile
  • Privacy
  • Contact

2021/10/19

A - 2点間距離の最大値 ( The longest distance ) をpythonで解く

  • #atcoder

コーディング力向上を目標に、競プロに手を出してみることにする。
AtCoder 版!蟻本 (初級編) が最初のとっかかりとして良さそうだったので、試しに数問解いてみた。

今回解いたのはその中の1つ。
問題のリンクは↓
https://atcoder.jp/contests/arc004/tasks/arc004_1

平面上にN個の点が与えられるので、それぞれを結んだ距離の中で一番長くなるものを出力しろという問題。

それぞれを結んだ距離 = ユークリッド距離なので、コードでの表現方法を調べる。

pythonでrootは

import math
math.sqrt(x)

で、pythonでべき乗は

print(x ** n)
>> xのn乗

なのでコードに落とし込むと下記のようになる

ユークリッド距離算出コード
# 地点a, bのユークリッド距離算出
import math
math.sqrt((x[a] - x[b]) ** 2 + (y[a] - y[b]) ** 2)

あとはうまく動くように整形しながらコード書いていくだけ

N = int(input())
 
x = [0] * N
y = [0] * N
for i in range(N):
	x[i], y[i] = map(int, input().split())
 
ans = 0
for a in range(N):
  for b in range(a + 1, N):
    ans = max(ans, ((x[a] - x[b]) ** 2 + (y[a] - y[b]) ** 2) ** 0.5)
 
print(ans)

無事AC
https://atcoder.jp/contests/arc004/submissions/26193607

このエントリーをはてなブックマークに追加
  • Copyright © 2019. Makoto Nakano
  • ALL Tags