DEV Community

Gabriel J
Gabriel J

Posted on

Zerando HackerRank ( 24 )

E no vigésimo quarto episódio desta serie que queima os miolos, vamos abordar um problema envolvendo uma pilha de meias.

Neste problema, temos uma grande pilha de meias que devem ser combinadas por cor. Vamos receber um array de números inteiros representando a cor de cada meia, com isso devemos determinar quantos pares de meias com cores iguais existem.

Exemplo:
n = 7
ar = [1, 2, 1, 2, 1, 3, 2]

Há um par de cor e um de cor. Restam três meias ímpares, uma de cada cor. O número de pares é.

Para resolver este problema, resolveremos a função "sockMerchant". Está função recebera os seguintes parâmetros:

n: o número de meias na pilha.

ar[n]: as cores de cada meia.

Por sua vez deve retornar o numero de pares.

O objetivo da função é contar quantos pares de meias existem. Para isso, ela começa criando um novo array chamado uniqueValues, que contém apenas as cores únicas das meias. Isso é feito usando o construtor Set, que remove automaticamente os elementos duplicados do array original ar, e em seguida transforma-o novamente em um array usando o operador de propagação "...".

Em seguida, a função itera sobre cada um dos valores únicos do array, contando quantas vezes cada um aparece no array original ar. Para cada valor, a função usa o método filter para criar um novo array chamado filterValues que contém apenas os elementos que correspondem a esse valor. Em seguida, a função usa o método Math.floor para calcular quantos pares podem ser feitos a partir desse array, e adiciona esse número ao contador count.

Finalmente, a função retorna o valor de count, que representa o número total de pares de meias encontrados no array original ar.

Nossa função deve ficar assim:

Image description

E assim fechamos mais um desafio.

Top comments (0)