白準一次元アレイ3052(Python)


標準3052(残り)



に答える
lst = []

for a in range(10):
    a = int(input())
    b = a % 42
    lst.append(b)
    
print(len(set(lst)))
これは入力値を42の余剰値に分割する問題である.
まず、空のリストをlstという変数に保存します.そしてfor文により,「a」という変数には,問題で与えられたように10個の整数型入力値が加わった.「b」という変数には、入力aの値を42で割った残りの値が保存される.
次にappendによりbをlstに1つずつ追加する.残りの値はlstにあります.
ここでの問題は、異なる余剰値しか出力できないことです.これは,オーバーラップした残りの部分は出力できないため,set関数でlstを変更すると重複した値が消失することが問題となっている.
そして、lstに残っている要素をlen()で数えて印刷すると、問題は終わります.
質問元:https://www.acmicpc.net/problem/3052