practivceAlgorithm/codeforce

[Codeforce][Python] #702 F. Equalize the Array

findTheValue 2021. 11. 7. 02:19

Counter map을 만든 후 set에 조사할 count들을 모은 후 순회하며 그 cnt보다 크면 cnt에 맞춰주고 작으면 0에 맞춰주는 식으로 풀었습니다.

 

import sys
input = sys.stdin.readline
from collections import defaultdict


for test in range(int(input())):
    n = int(input())
    arr = list(map(int, input().split()))
    counter = defaultdict(int)
    for num in arr:
        counter[num] += 1
    candidate = set()
    for target in counter.values():
        candidate.add(target)
    answer = float('inf')
    for target in candidate:
        total = 0
        for cnt in counter.values():
            if cnt == target:
                continue
            if target > cnt:
                total += cnt
            else:
                total += cnt - target
            if total >= answer:
                break
        answer = min(answer, total)
    print(answer)