eolymp 1448: 原因分析による解決方法の紹介


まず、問題の原因を分析しましょう。この問題では、与えられた整数のリストから重複していない要素の数を求める必要があります。重複していない要素の数を数えるためには、各要素の出現回数を記録する必要があります。

下記に、いくつかの方法とそれぞれの方法のコード例を示します。

方法1: ループとカウンティング この方法では、リストの各要素を順番にチェックし、出現回数をカウントします。重複していない要素の数を数えるために、カウントが1の要素の数を数えます。

def count_unique_elements(nums):
    count = 0
    for num in nums:
        if nums.count(num) == 1:
            count += 1
    return count

方法2: ハッシュテーブルを使用したカウンティング この方法では、ハッシュテーブル(辞書)を使用して要素の出現回数を記録します。各要素を辞書のキーとし、出現回数を値として格納します。最後に、値が1である要素の数を数えます。

from collections import defaultdict
def count_unique_elements(nums):
    count = 0
    element_count = defaultdict(int)
    for num in nums:
        element_count[num] += 1
    for count in element_count.values():
        if count == 1:
            unique_elements += 1
    return count