バケット(辞書型編)
前回は、配列 を使ってバケットの手法を実現しましたか、今回は 辞書型 を使ってバケットの手法を実現してみます。
問題は前回と同様のものを使います。
[問題]
N個 の正の整数があります。 この中に含まれる数値の種類の個数を求めて下さい。
[条件]
・各数字は、1以上10以下の整数
解法・ソースコード
前回は配列のインデックスと入力の数字を対応させました。
辞書型では、入力の数字を 辞書型のキー とし、数字の個数を 辞書型のバリュー(値) としてみます。
[Google Colaboratory]
1 | #---------- 入力例 ---------- |
前回配列を使ったときとコード量はあまり変わりませんが、配列では固定のエリア(数字の種類分の配列)を確保する必要があり未使用になる可能性もあったので、辞書型の方が無駄なく実装できているような気がします。
バケット: {3: 2, 1: 2, 4: 1, 5: 3, 9: 2, 2: 1, 6: 1, 8: 1} 解(種類の個数): 8
解は 8 となり、前回記事と同様に入力の数字の種類が 8種類 であることが確認できました。