【ABC188 B】「Orthogonality」を解く【Python3】

「AtCoder」解説一覧へ

2つのN次元ベクトル A, B が与えられたとき、この内積が0かどうかを判定する問題です。

提出
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

num = 0

for i in range(n):
    num += a[i]*b[i]

if num == 0:
    print("Yes")
else:
    print("No")

問題文にある通り、内積は、「A1B1 + A2B2 + A3B3 + … + ANBN」で求まるため、これを愚直に計算して、0かどうか判定します。

for文とif文を組み合わせて1行で書くこともできます。

提出
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
print("Yes" if sum([ai*bi for ai,bi in zip(a,b)]) == 0 else "No")

zip()は、複数のリストなどの要素を同時に取得する関数です。

week = ["SUN", "MON", "TUE", "WED"]
day = [24, 25, 26, 27]

for a, b in zip(week, day):
    print(a, b)
# > SUN 24
# > MON 25
# > TUE 26
# > WED 27

【ABC188】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です