Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

158
Vistas
Problema de socket Merchant, ¿cómo puedo resolverlo simplemente clasificando la matriz y contando la cantidad de pares de pisos de los números?

El problema que tengo que resolver es este:

Hay una gran pila de calcetines que deben emparejarse por color. Dada una serie de números enteros que representan el color de cada calcetín, determine cuántos pares de calcetines con colores iguales hay.

Ejemplo

Hay un par de color y otro de color. Quedan tres calcetines impares, uno de cada color. el numero de parejas es

.

Función descriptiva

Complete la función sockMerchant en el editor a continuación.

sockMerchant tiene los siguientes parámetros:

 int n: the number of socks in the pile int ar[n]: the colors of each sock

Devoluciones

 int: the number of pairs

Mi solucion en javascript ya que se muy poco del idioma fue esta

 function sockMerchant(n, ar) { // Write your code here let pairs=0; let counter; ar.sort() for(let i=0; i < n; i++){ if (i == 0){ counter = 1; }else{ if(ar[i] == ar[i-1]){ counter++; }else{ pairs= pairs + Math.floor(counter/2); counter= 1; } } } return pairs }

El problema es que hackerranks se queja porque con esta entrada

 10 1 1 3 1 2 1 3 3 3 3

mi salida es 2 en lugar de 4. ¿Alguien puede decirme por qué? No puedo ver dónde está el problema. si alguien me puede ayudar a ver donde esta el problema se lo agradeceria gracias de antemano jenifer

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Desafortunadamente, no pude entender la lógica de su algoritmo propuesto, pero como una solución alternativa, puede echarle un vistazo a mi código. Aquí está mi código javascript para este problema que funciona bien.

Primero, definí un diccionario (ar_count) y conté cada número de la matriz ar y actualicé el diccionario para la clave correspondiente. Definí la clave en forma de "clave"+ar[i] para una codificación fácil y un procesamiento rápido para encontrar la clave existente y para contar pares.

 function sockMerchant(n, ar) { var ar_count={}; for(let i=0; i<ar.length;i++){ if("key"+ar[i] in ar_count){ ar_count["key"+ar[i]]+=1; } else{ ar_count["key"+ar[i]]=1; } } //console.log(ar_count); var pairs=0; for (var key in ar_count){ paires+=~~(ar_count[key]/2); } return pairs; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda