Sock Merchant Challenge Solved in C#
Nov 7 · 1 min read
John works at a clothing store. He has a large pile of socks that he must pair by color for sale. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are.
For example, there are n = 7 socks with colors ar = [1, 2, 1, 2, 1, 3, 2]. There is one pair of color 1 and one of color 2. There are three odd socks left, one of each color. The number of pairs is 2.
Given the number of socks in the pile n and an array of colors of each sock, how many pairs do we have?
static int sockMerchant(int n, int[] ar)
{
int pairs = 0;
HashSet<int> set = new HashSet<int>();
foreach (int i in ar)
{
if (set.Contains(i)) continue;
int[] matchedItems = Array.FindAll(ar, x => i == x);
int occurrencies = matchedItems.Length;
if (occurrencies > 1)
pairs += ((occurrencies - (occurrencies % 2)) / 2);
set.Add(i);
}
}
return pairs;This Sock Merchant challenge is part of HackerRank
