Inspirado por esta pregunta y refinado por Luis Mendo .
Desafío
Dada una matriz 2D de enteros, cada fila tiene un valor máximo. Uno o más elementos de cada fila serán iguales al valor máximo de su fila respectiva. Su objetivo es determinar qué columna (s) contienen la mayoría de las entradas que son iguales al valor máximo de sus filas respectivas, así como el número de máximos en filas encontrados en estas columnas.
Entrada
- La entrada será una matriz
Mx no vacíaN(M> 0 yN> 0) en cualquier forma que se adapte bien al idioma que elija.
Salida
- Su programa debe devolver el índice de cada columna que contiene el número máximo de máximos por fila (ya sea como valores separados o como una lista). Se puede usar la indexación basada en 0 o en 1 (especifique en su descripción).
- Su programa también debe devolver el número de máximos que estaban presentes en estas columnas (un solo número).
- El orden / formato de la salida es flexible, pero debe explicarse en el texto que acompaña a su respuesta.
Información Adicional
- Todas las entradas en la matriz de entrada serán enteros positivos.
- Si el valor máximo de una fila es compartido por varios elementos en esa fila, todas las ocurrencias de ese valor cuentan para el total de sus columnas.
- Si varias columnas contienen el mismo número de máximos, debe devolver una lista de todas las columnas que tenían este número de máximos.
Un ejemplo
Considerar entrada
7 93
69 35
77 30
La fila 1 tiene un máximo de 93, que ocurre solo una vez, es decir, en la columna 2. Fila 2: ocurre en la columna 1. Fila 3: también en la columna 1. Entonces la columna ganadora es 1, con 2 máximos. Por lo tanto, la salida será [1] [2]. Si cambiamos la entrada a
7 93
69 35
77 77
la salida será [1 2] [2], porque ambas columnas tienen 2 máximos.
Casos de prueba
input => output ( [1-based index array], [nMaxima] )
----------------------------------------------
7 93
69 35 => [1], [2]
77 30
7 93
69 35 => [1 2], [2]
77 77
1 2 3 4 => [4], [2]
5 6 7 8
16 2 3 13
5 11 10 8 => [1 2 4], [1]
9 7 6 12
1 1 1 1 => [1 2 3 4], [1]
25 6 13 25 => [1 4], [1]
1
2
3 => [1], [4]
4
100 => [1], [1]
Puntuación
Este es el código de golf , gana el código más corto en bytes. Tiebreaker va a la respuesta anterior.
Tabla de clasificación
A continuación se muestra un fragmento de pila para analizar todas las entradas.