# 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;
};
```