【ABC154 C】「Distinct or Not」を解く【Python3】

abc154c

コンテスト一覧へ

 

整数列 A1,A2,…,AN が与えられたときに、これらが互いに異なるかどうかを判定する問題です。

方法を2つ紹介します。

  • 重複を削除して長さを調べる
  • 整数列をソートして同じものがあるか調べる

重複を削除して長さを調べる

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

if len(a) == len(a_set):
    print("YES")
else:
    print("NO")

set() を用いて、重複するものを削除したあと、する前と後での整数列の長さを調べると解くことができます。

 

整数列をソートして同じものがあるか調べる

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

a.sort()

for i in range(n - 1):
    if a[i] == a[i + 1]:
        print("NO")
        exit(0)

print("YES")

整数列をソートし、for文を用いて、1つ後ろの整数と同じかどうかを調べていきます。

1つでも同じものがあれば「NO」になります。

余談ですが、私は1回間違えて、出力を「Yes」「No」にしてしまいましたw

【ABC154】解説記事リスト

コンテスト一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。