In this HackerRank Counting Sort 1 problem, you have given a list of integers, count and return the number of times each value appears as an array of integers.

HackerRank Counting Sort 1 problem solution


Problem solution in Python programming.

n = int(input())
ar = list(map(int, input().split()))

tot = [0]*100

for j in range(0,n):
    temp = ar[j]
    tot[temp] += 1
print(*tot, sep =' ')    


Problem solution in Java Programming.

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        in.nextLine();  // not used
        System.out.println( outputString( count( convertToInts( in.nextLine().split( " " ) ) ) ) );
    }
    
    public static int[] count( int[] ar ) {
        int[] count = new int[100];
        for( int nbr : ar ) {
            count[nbr] += 1;
        }
        return count;
    }
    
    private static String outputString( int[] ar ) {
        StringJoiner joiner = new StringJoiner( " " );
        for( Integer value : ar ) {
            joiner.add( value.toString() );
        }
        return joiner.toString();
    }
    
    private static int[] convertToInts( String[] values ) {
        int[] parsed = new int[values.length];
        for( int i = 0; i < values.length; i++ ) {
            parsed[i] = Integer.valueOf( values[i] );
        }
        return parsed;
    }
}


Problem solution in C++ programming.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int n, val;
	int A[100];
	for (int i = 0; i < 100; i++) {
		A[i] = 0;
	}
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &val);
		A[val]++;
	}
	printf("%d", A[0]);
	for (int i = 1; i < 100; i++) {printf(" %d", A[i]);}
	printf("\n");
	return 0;
}


Problem solution in C programming.

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

int main() 
{
    int i,j,n,a[1000001];
    int c[100]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        c[a[i]]++;
    }
    for(i=0;i<100;i++)
        printf("%d ",c[i]);
    printf("\n");
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */    
    return 0;
}


Problem solution in JavaScript programming.

'use strict';

function processData(input) {
    var lines = input.split('\n'),
        len = parseInt(lines[0], 10);

    lines = lines[1].split(" ");

    var A = Array.apply(null, new Array(100)).map(Number.prototype.valueOf, 0);

    for (var i=0; i<len; i++) {
        A[parseInt(lines[i], 10)]++;
    }

    console.log(A.join(" "));
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
var _input = "";
process.stdin.on("data", function (input) { _input += input; });
process.stdin.on("end", function () { processData(_input); });