1.トピック
2.アイデア
- 最初に n/2 と candy の型を計算します (配列を set で重複排除してから、配列の長さを計算します)
- キャンディーの種類の数が n/2 以下の場合は、そのキャンディーが食べきれないことを意味し、キャンディーの種類の数を返します。
- 逆に言えば、飴は食べきれるのにそんなに食べられないのに、食べられる最大回数を返す……。
3. コードの実装
/**
* @param {number[]} candyType
* @return {number}
*/
var distributeCandies = function(candyType) {
const n_half = candyType.length / 2
let typeCnt = [...new Set(candyType)].length
if (n_half >= typeCnt) return typeCnt
if (n_half < typeCnt) return n_half
};