[LeetCode] 3545. Minimum Deletions for At Most K Distinct Characters

Chobby·2026년 1월 15일

LeetCode

목록 보기
928/987

😎풀이

  1. s 순회하며 각 문자 빈도 기록
  2. 빈도를 기준으로 내림차 순 정렬
  3. 빈도가 가장 낮은 문자를 제거해가며 고유한 문자가 k개를 초과하지 않을 때까지 연산
  4. 시도한 연산 수 반환
function minDeletion(s: string, k: number): number {
    const frequent = new Map()
    for(const char of s) {
        frequent.set(char, (frequent.get(char) ?? 0) + 1)
    }
    const freqArr = Array.from(frequent)
    const sortedFreq = freqArr.toSorted(([aKey, aFreq], [bKey, bFreq]) => bFreq - aFreq)
    let deletion = 0
    while(sortedFreq.length > k) {
        const [key, freq] = sortedFreq.pop()
        deletion += freq
    }
    return deletion
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글