POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Desafío semanal: Extrañamente pequeño

Desafío semanal 3××: soluciones a las dos tareas y ejemplos de ejecución

Publicado el 08/09/2025

Desafío semanal 3××

Cada semana Mohammad S. Anwar publica The Weekly Challenge, una oportunidad para proponer soluciones a dos tareas semanales. A continuación presento la traducción y reformulación en español de dos tareas y mis soluciones implementadas originalmente en Python. Este artículo también muestra ejemplos de ejecución y una breve mención de los servicios de Q2BSTUDIO relacionados con desarrollo de software y inteligencia artificial.

Tarea 1: Menores que el actual

Enunciado: Se da una lista de números llamada num1. Escriba un script que devuelva una lista num2 donde num2[i] es el número de elementos en num1 que son menores o iguales a num1[i], excluyendo el propio elemento.

Solución: La idea es sencilla. Para cada elemento recorremos la lista y contamos cuántos valores son menores o iguales y restamos uno para excluir el propio elemento. En Python se puede implementar así

def smaller_than_current(numbers): solution = [] for number in numbers: solution.append(sum(1 for n in numbers if n <= number) - 1) return solution

Explicación: para cada number en la lista se calcula una suma de 1 por cada n que cumple n <= number y luego se resta 1 para no contar el propio elemento. El coste es O(n^2) en tiempo y es directo y claro para listas de tamaño moderado.

Ejemplos de uso y salida:

$ ./ch-1.py 6 5 4 8 => [2, 1, 0, 3] | $ ./ch-1.py 7 7 7 7 => [3, 3, 3, 3] | $ ./ch-1.py 5 4 3 2 1 => [4, 3, 2, 1, 0] | $ ./ch-1.py -1 0 3 -2 1 => [1, 2, 4, 0, 3] | $ ./ch-1.py 0 1 1 2 0 => [1, 3, 3, 4, 1]

Tarea 2: Matriz impar

Enunciado: Se recibe el número de filas row y columnas col de una matriz inicializada a cero y una lista de posiciones. Para cada posición (r, c) aumente en 1 todos los elementos de la fila r y todos los elementos de la columna c. Devuelva el total de celdas con valor impar tras aplicar todas las operaciones. Los índices son 0 based.

Solución: Una implementación directa calcula para cada celda cuántas veces se incrementa por puntos dados. Una forma clara de organizar el código es representar cada par como una estructura Point con un método score que indique si para una celda determinada la contribución es 2 cuando coincide en fila y columna, 1 si coincide solo en fila o en columna, y 0 en caso contrario. Luego se suma la puntuación de todos los puntos y se cuenta si el total es impar.

Ejemplo de estructura y función en Python simplificada:

class Point: def __init__(self, x, y): self.x = x self.y = y def score(self, row, col): if row == self.x and col == self.y: return 2 if row == self.x or col == self.y: return 1 return 0

def odd_matrix(rows, cols, points_list): points = [Point(x, y) for x, y in points_list] odd_cells = 0 for r in range(rows): for c in range(cols): s = 0 for p in points: s += p.score(r, c) if s % 2 == 1: odd_cells += 1 return odd_cells

La aproximación anterior es clara y fácil de razonar, aunque su complejidad es O(rows * cols * m) con m el número de puntos. Para matrices y conjuntos de operaciones grandes se pueden usar enfoques optimizados que cuentan cuántas filas y columnas quedan con incrementos impares y combinan esos recuentos para obtener el total en O(rows + cols + m).

Ejemplos de ejecución:

$ ./ch-2.py 2 3 0 1 1 1 => 6 | $ ./ch-2.py 2 2 1 1 0 0 => 0 | $ ./ch-2.py 3 3 0 0 1 2 2 1 => 0 | $ ./ch-2.py 1 5 0 2 0 4 => 2 | $ ./ch-2.py 4 2 1 0 3 1 2 0 0 1 => 8

Acerca de Q2BSTUDIO y servicios relacionados

En Q2BSTUDIO somos una empresa de desarrollo de software que ofrece soluciones de software a medida y aplicaciones a medida para empresas de distintos sectores. Diseñamos aplicaciones multiplataforma y soluciones de software a medida adaptadas a las necesidades del cliente. Además, contamos con capacidades de inteligencia artificial y ofrecemos servicios de ia para empresas, agentes IA personalizados y soluciones de inteligencia artificial para potenciar procesos internos y productos.

Si su proyecto necesita una aplicación corporativa o una plataforma específica, podemos ayudarle con el desarrollo de aplicaciones y software a medida visitando nuestra página de aplicaciones a medida. Para integraciones basadas en modelos y automatizaciones inteligentes, consulte nuestra oferta de inteligencia artificial y agentes IA para empresas.

Además ofrecemos servicios complementarios clave para proyectos modernos: ciberseguridad y pentesting para proteger sus activos, servicios cloud aws y azure para desplegar infraestructura escalable, servicios inteligencia de negocio como Power BI para transformar datos en decisiones, y soluciones de automatización de procesos. Palabras clave que describen nuestros servicios y que usamos para optimizar la búsqueda: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Si desea más información técnica o ejemplos de proyectos, podemos adaptar una propuesta y mostrar pruebas de concepto que integren desarrollo a medida, seguridad y capacidades de inteligencia de negocio y cloud.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio