AtCoder ABC 180 B – Various distances Python解説

スポンサーリンク

Various distances

N 次元空間内の点 (x1,…,xN) が与えられます。
原点からこの点までの、マンハッタン距離、ユークリッド距離、チェビシェフ距離をそれぞれ求めてください。 ただし、それぞれの距離は次のように計算されます。

AtCoder Beginner Contest 「Various distances」

マンハッタン距離、ユークリッド距離、チェビシェフ距離の問題です。
問題文にマンハッタン距離、ユークリッド距離、チェビシェフ距離の求め方が書かれているので、式をそのまま当てはめれば大丈夫です。

n = int(input())
x = list(map(int, input().split()))

a = sum(map(abs, x))
b = sum(map(lambda x: x ** 2, x)) ** 0.5
c = max(map(abs, x))

print(a)
print(b)
print(c)

マンハッタン距離は絶対値の和なので、abs関数で配列xの要素を絶対値にしてsum関数で足して求めています。

ユークリッド距離はラムダ関数を使い、配列xの要素を2乗してsum関数で足したあとルートを求めています。

チェビシェフ距離はabs関数で配列xの要素を絶対値にしたあと、max関数で最大値を求めています。