[LeetCode] 3663. Find The Least Frequent Digit

Chobby·2026년 1월 19일

LeetCode

목록 보기
940/981

😎풀이

  1. 정수 n을 각 자릿수로 분리
  2. 분리된 자릿수를 통한 정수 빈도 기록
  3. 빈도를 기준으로 오름차 순 정렬하고, 값을 기준으로 동일 빈도 요소를 다시 오름차 순 정렬
  4. 최소 빈도, 최솟값 반환
function getLeastFrequentDigit(n: number): number {
    const digits = getDigits(n)
    const frequent = getFrequentMap(digits)
    const sortedByFreq = [...frequent].toSorted(([aNum, aFreq], [bNum, bFreq]) => {
        if(aFreq !== bFreq) return aFreq - bFreq
        return aNum - bNum
    })
    return sortedByFreq[0][0]
};

function getDigits(num: number) {
    const digits = []
    while(num) {
        digits.push(num % 10)
        num = Math.floor(num / 10)
    }
    return digits
}

function getFrequentMap(numArr: number[]) {
    const frequent = new Map<number, number>()
    for(const num of numArr) {
        frequent.set(num, (frequent.get(num) ?? 0) + 1)
    }
    return frequent
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글