[LeetCode] 1399. Count Largest Group

Chobby·2025년 8월 20일
1

LeetCode

목록 보기
516/582

😎풀이

  1. n의 길이를 갖는 배열 준비
  2. 1부터 n까지 순회
    1-1. 각 숫자의 각 자리를 더한 값에 해당하는 인덱스에 추가
  3. n의 길이를 갖는 배열 순회
    2-1. 현재 자릿수 길이가 최대 자릿수 길이보다 짧다면 무시
    2-2. 현재 자릿수 길이가 최대 자릿수 길이보다 길다면 새로 갱신
    2-3. 같다면 증가
  4. 계산된 최대 길이의 그룹 길이 반환
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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글