# Write a Program to Count Largest Group

# 1399. Count Largest Group

You are given an integer n.

Each number from 1 to n is grouped according to the sum of its digits.

Return the number of groups that have the largest size.

### Example 1:

“`

Input: n = 13

Output: 4

Explanation: There are 9 groups in total, they are grouped according sum of its digits of numbers from 1 to 13:

[1,10], [2,11], [3,12], [4,13], [5], [6], [7], [8], [9].

There are 4 groups with largest size.

“`

### Example 2:

“`

Input: n = 2

Output: 2

Explanation: There are 2 groups [1], [2] of size 1.

“`

Constraints:

“`

1 <= n <= 104 ```

/** * @param {number} n * @return {number} */ var countLargestGroup = function(n) { const getDigitCount = (j) => { if ( j <= 9 ) return j; let cnt = 0, numStr = `${j}`; for (let i = 0; i < numStr.length; i++) { cnt += +numStr[i]; } return cnt; } const map = new Map(); for (let i = 1; i <= n; i++) { let item = []; const digiCnt = getDigitCount(i); if (map.has(digiCnt)) { item = map.get(digiCnt); } item.push(digiCnt) map.set(digiCnt, item); } let max = -1, out = []; for(const item of map.values()) { const len = item.length; out.push(len); if (len >= max) { max = len; } } let outCnt =0; for (let i = 0; i < out.length; i++) { if (out[i] == max) outCnt++; } return outCnt; };