
😎풀이
n
의 길이를 갖는 배열 준비
- 1부터
n
까지 순회
1-1. 각 숫자의 각 자리를 더한 값에 해당하는 인덱스에 추가
n
의 길이를 갖는 배열 순회
2-1. 현재 자릿수 길이가 최대 자릿수 길이보다 짧다면 무시
2-2. 현재 자릿수 길이가 최대 자릿수 길이보다 길다면 새로 갱신
2-3. 같다면 증가
- 계산된 최대 길이의 그룹 길이 반환
function countLargestGroup(n: number): number {
const arr = Array.from({ length: n }, () => [])
for(let i = 1; i <= n; i++) {
const curStr = String(i)
const curArr = [...curStr]
const curNumArr = curArr.map(Number)
const curSum = curNumArr.reduce((acc, cur) => acc + cur, 0)
arr[curSum - 1].push(i)
}
let maxLen = 0
let largestGroup = 0
for(const nums of arr) {
const curLen = nums.length
if(curLen < maxLen) continue
if(curLen > maxLen) {
largestGroup = 1
maxLen = curLen
continue
}
largestGroup++
}
return largestGroup
};