問題
方針
鏡餅を何枚積めるか?
積める条件は下の持ちよりも小さい餅であること。同じものは積めない。
なので入力値を降順に並び替えて次のものが小さいかを判定していくことを考えました。
回答例
N = int(input())
d = [int(input()) for _ in range(N)]
# 降順に並び替えをする
d.sort(reverse=True)
count = 1
for i in range(len(d)):
if i == N - 1:
break
if d[i] > d[i + 1]:
count += 1
# 回答を出力する
print(count)
事後で調べてみたら、もっと簡単な方法としてsetに変換して重複を排除してsetのサイズをみればよいという回答をちらほらみかけました。
コメント