HackerRank 'Sock Merchant' Solution

Martin Kysel · July 26, 2020

Short Problem Definition:

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.

Sock Merchant

Sales By Match


time complexity is O(N)

space complexity is O(N)


Count the occurrence of every element. Use integer division to eliminate unpaired socks.

from collections import defaultdict

def sockMerchant(n, ar):
    d = defaultdict(int)

    for k in ar:
        d[k] += 1
    cnt = 0
    for ele in d.values():
        cnt += ele // 2
    return cnt

Twitter, Facebook