HackerRank Migratory Birds Problem Solution Yashwant Parihar, April 12, 2023April 12, 2023 In this post, We are going to solve HackerRank Migratory Birds Problem. Given an array of bird sightings where every element represents a bird type id, determine the id of the most frequently sighted type. If more than 1 type has been spotted that maximum amount, return the smallest of their ids.Examplearr = [1, 1, 2, 2, 3]There are two each of types 1 and 2, and one sighting of type 3. Pick the lower of the two types seen twice: type 1.Function DescriptionComplete the migratory birds function in the editor below.migratory birds have the following parameter(s):int arr[n]: the types of birds sightedReturnsint: the lowest type id of the most frequently sighted birdsInput FormatThe first line contains an integer, n, the size of arr.The second line describes arr as n space-separated integers, each a type number of the bird sighted.Constraints5 < n < 2 X 10 power 5It is guaranteed that each type is 1,2, 3, 4, or 5.Sample Input 06 1 4 4 4 5 3 Sample Output 04Explanation 0The different types of birds occur in the following frequencies:Type 1:1 birdType 2:0 birdsType 3:1 birdType 4:3 birdsType 5:1 birdThe type number that occurs at the highest frequency types 4, so we print 4 as our answer.Sample Input 111 1 2 3 4 5 4 3 2 1 3 4 Sample Output 13Explanation 1The different types of birds occur in the following frequencies:Type 1: 2Type 2: 2Type 3: 3Type 4: 3Type 5: 1Two types have a frequency of 3, and the lower of those are type 3.HackerRank Migratory Birds Problem SolutionMigratory Birds C Solution#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int main(){ int n; scanf("%d",&n); int *types = malloc(sizeof(int) * n); for(int types_i = 0; types_i < n; types_i++){ scanf("%d",&types[types_i]); } int counts[5]; for(int i=0; i<5; i++){ counts[i] =0; } for(int i=0; i<n; i++){ counts[types[i]-1]++; } int maxpos = 0; for(int i=1; i<5; i++){ if(counts[i] > counts[maxpos]){ maxpos = i; } } printf("%d\n",maxpos+1); return 0; }Migratory Birds C++ Solution#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main(){ int num_of_birds, best_bird = 1, max_bird = 0; cin >> num_of_birds; vector<int> types(5, 0); for(int i = 0, next_bird; i < num_of_birds; ++i){ cin >> next_bird; ++types[next_bird-1]; } for(int i = 0; i < 5; ++i){ if(types[i] > max_bird){ max_bird = types[i]; best_bird = i + 1; } } cout << best_bird << endl; return 0; }Migratory Birds C Sharp Solutionusing System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string[] types_temp = Console.ReadLine().Split(' '); int[] types = Array.ConvertAll(types_temp,Int32.Parse); // your code goes here var arr = new int[5]; for (var i = 0; i < n; i++){ arr[types[i]-1] = arr[types[i]-1] + 1; } var result = 4; for(var i = 3; i >= 0; i--){ if(arr[i] >= arr[result]){ result = i; } } Console.WriteLine(result + 1); } }Migratory Birds Java Solutionimport java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] types = new int[n]; for(int types_i=0; types_i < n; types_i++){ types[types_i] = in.nextInt(); } // your code goes here Map<Integer, Long> typesToCountMap = IntStream.of(types). boxed(). collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); Long maxCount = typesToCountMap.values().stream(). max(Comparator.naturalOrder()). get(); List<Integer> typeWithMaxCount = typesToCountMap.entrySet().stream(). filter(item -> Objects.equals(item.getValue(), maxCount)). map(Map.Entry::getKey). collect(Collectors.toList()); System.out.println(typeWithMaxCount.get(0)); } }Migratory Birds JavaScript Solutionprocess.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("\n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function main() { var n = parseInt(readLine()); types = readLine().split(' '); types = types.map(Number); // your code goes here var obj = { 1:0, 2:0, 3:0, 4:0, 5:0 } function count(num){ obj[num]++; } types = types.map(count); var max = 0; var type = 1; for(var prop in obj){ if(obj[prop]>max){ max=obj[prop]; type = prop; }else if(obj[prop]===max && prop<type){ type=prop; } } console.log(type); }Migratory Birds Python Solution#!/bin/python3 import sys n = int(input().strip()) types = list(map(int, input().strip().split(' '))) # your code goes here counts = [0,0,0,0,0,0] for i in types: counts[i]+=1; print(counts.index(max(counts)))Other SolutionsHackerRank Day of the Programmer SolutionHackerRank Bill Division Problem Solution c C# C++ HackerRank Solutions java javascript python CcppCSharphackerrank solutionjavajavascriptpython