Equalize the Array HackerRank Solution in C, C++, Java, Python

Given an array of integers, determine the minimum number of elements to delete to leave only elements of equal value.

Example

Arr = [1,2,2,3]

Delete the 2 elements 1 and 3 leaving arr=[2,2]. If both twos plus either the 1 or 3  are deleted, it takes 3 deletions to leave either [3] or [1]. The minimum number of deletions is 2.

Function Description

Complete the equalizeArray function in the editor below.

equalizeArray has the following parameter(s):

  • int arr[n]: an array of integers

Returns

  • int: the minimum number of deletions required

Input Format

The first line contains an integer , the number of elements in arr.

The next line contains  space-separated integers arr[i].

Constraints

  • 1<=n<=100
  • 1<=arr[i]<=100

Sample Input

STDIN       Function

-----       --------

5           arr[] size n = 5

3 3 2 1 3   arr = [3, 3, 2, 1, 3]

 

Sample Output

2  

 

Equalize the Array HackerRank Solution in C

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
    int i,n,l;
scanf("%d",&n);
    int arr[n];
    for(i=0;i<n;i++){scanf("%d",&arr[i]);}
    int brr[101]={0};
    for(i=0;i<n;i++){brr[arr[i]]++;}
    l=0;
    for(i=0;i<101;i++){
        if(brr[i]>l){l=brr[i];}
    }
    printf("%d",n-l);
        
    return 0;
}

 

Equalize the Array HackerRank Solution in C++

#include <bits/stdc++.h>
using namespace std;

#define DEBUG(x)    cerr << #x << " = " << x << endl
#define INPUT       freopen("Data.inp", "r", stdin)
#define OUTPUT      freopen("Data.out", "w", stdout)

typedef long long LL;
typedef pair<int, int> II;
typedef vector<int> VI;

const int N = (int) 1e2 + 10;
int n, a[N], c[N];

int main() {
    #ifdef LOCAL
        INPUT;
        OUTPUT;
    #endif

    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
    for (int i = 1; i <= n; ++i) c[a[i]]++;

    printf("%d", n - *max_element(c + 1, c + 101));
    return 0;
}

 

Equalize the Array HackerRank Solution in Java

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] counts = new int[101];
        for (int i = 0; i < n; i++) {
            counts[sc.nextInt()]++;
        }
        Arrays.sort(counts);
        System.out.println(n-counts[100]);
    }
}

 

Equalize the Array HackerRank Solution in Python

from collections import Counter

n = input()
A = map(int,raw_input().strip().split())

cts = Counter(A)
print n-max(cts.values())

 

Equalize the Array HackerRank Solution in C#

using System;
using System.Collections.Generic;
using System.IO;
class Solution {
    static void Main(String[] args) {
        int t = Convert.ToInt32(Console.ReadLine());
        string[] a_temp = Console.ReadLine().Split(' ');
        int[] a = Array.ConvertAll(a_temp,Int32.Parse);
        
        int[] counts = new int[101];
        for (int i = 0; i < t; ++i) {
            counts[a[i]]++;
        }
        
        int maxValue = 0;
        for (int i = 0; i < 101; ++i) {
            maxValue = Math.Max(maxValue, counts[i]);
        }
        
        Console.Out.WriteLine(t - maxValue);
    }
}

 

Attempt Equalize the Array HackerRank Challenge 

Link – https://www.hackerrank.com/challenges/equality-in-a-array/

 

Leave a Comment