Introducción:
En holandés, las palabras líder y sufrimiento, siendo 'leiden' y 'lijden' respectivamente, se pronuncian de la misma manera. Uno está escrito con un "ei corto" y otro con un "ij largo" , como diríamos los holandeses, pero tanto "ei" como "ij" se pronuncian [ɛi].
Desafío:
Dada una lista de números, determine cuáles (si los hay) son líderes y cuáles (si los hay) sufren.
Un número principal es:
- Un numero positivo
- Tiene al menos cuatro dígitos
- Está en el 50% más alto de la lista en términos de valor
- Todavía está en el 50% más alto de la lista en términos de valor, si su tercer dígito se reemplaza por su segundo dígito, y su posición del segundo dígito se llena con un 0 (es decir,
1234
se convertiría en1024
)
Un número que sufre es:
- Un numero negativo
- Tiene al menos cuatro dígitos
- Está en el 50% más bajo de la lista en términos de valor
- Todavía está en el 50% más bajo de la lista en términos de valor, si su tercer dígito se reemplaza por su segundo dígito, y su posición del segundo dígito se llena con un 0 (es decir,
-4321
se convertiría en-4031
)
Ejemplo:
Entrada: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Salida: líder [5827, 281993, 37819, 37298]
:; sufrimiento:[-32781, -2739]
Explicación:
Si clasificamos y dividimos los números en dos mitades, sería:
[[-32781, -2739, -389, 0, 3798], [3854, 3918, 5827, 37819, 281993]]
Sólo hay dos números negativos con al menos cuatro dígitos: [-32781, -2739]
. Cambiar los dígitos como se describió anteriormente no cambiaría su posición, por lo que ambos sufren números.
Para la mayor parte en dos, todos los números tienen al menos cuatro dígitos: [3854, 3918, 5827, 37819, 281993]
. Sin embargo, cambiar los dígitos como se describió anteriormente cambiaría algunas de sus posiciones. El 3854
se convertiría 3084
, poniéndolo debajo de lo 3798
que está en el 50% más bajo, por 3854
lo que no es un número principal en esta lista. Lo mismo se aplica a lo 3918
que sería 3098
, poniéndolo también a continuación 3798
. Los otros tres números son líderes, como lo 5827
que se convertiría 5087
, que todavía está arriba 3798
y de hecho todavía está en el mismo índice de la lista ordenada. Entonces[5827, 37819, 281993]
son los números principales
Reglas de desafío:
- I / O es flexible. La lista de entrada puede ser una lista de enteros, listas de dígitos 2D, lista de cadenas, etc. La salida puede ser una lista de listas de enteros, dos listas separadas, dos cadenas, ambas impresas en STDOUT, etc.
- Al determinar si un número es líder / sufriente, solo miramos su nueva posición de ese número si solo se cambian sus dígitos en consecuencia, no después de haber aplicado las modificaciones a todos los números.
- Generamos los números originales, no los modificados.
- Los números en las listas de salida principales y que sufren pueden estar en cualquier orden.
- Si el tamaño de la lista de entrada es impar, el número en el centro no pertenece a la mitad.
- Se garantiza que los números seguirán siendo únicos después de su modificación. Entonces, una lista como
[0, 1, 1045, 1485]
no es una lista de entrada válida, ya1485
que sería igual a1045
después de su modificación.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: leading: [5827, 281993, 37819, 37298]; suffering: [-32781, -2739]
Input: [-100, 472, 413, -1782]
Output: leading: []; suffering: [-1782]
Input: [-1234, -1235, -1236, 1234, 1235, 1236]
Output: leading: [1234, 1235, 1236]; suffering: [-1234, -1235, -1236]
Input: [-1919, -1819, -1719, -1619, -1500, -1444, 40, 4444, 18]
Output: leading: [4444]; suffering: []
Input: [-1004, -1111, -1000]
Output: leading: []; suffering: [-1111]
Input: [-1004, -1111, -1010, 1000]
Output: leading: [1000]; suffering: [-1111]
Input: [1000, -1000]
Output: leading: [1000]; suffering: [-1000]
Input: [1000, -5000, 4000]
Output: leading: [4000]; suffering: [-5000]
fuente
Respuestas:
05AB1E ,
2724232221 bytesPruébalo en línea!
fuente
©
y en®Åm
lugar de tuÅmUy
yX
para guardar un byte, pero ahora eliminasteUX
también haciendo elÅm ... ‹y
después del mapa, por lo que es una optimización similar. De hecho, me gusta más el tuyo, ya que no usa variables innecesarias en ese caso. :)0šāǝ
! : D ¡Nunca hubiera pensado en eso!D¦0š2Lǝ
, que es el mismo número de bytes queD1è0šāǝ
.Python 2 ,
119118111107 bytesPruébalo en línea!
Salidas como
suffering, leading
.fuente
Jalea , 30 bytes
Pruébalo en línea!
Dada la longitud de la respuesta 05AB1E de Grimy , estoy seguro de que esto se puede jugar mejor, pero aquí está.
fuente
Javascript (Node.js) , 162 bytes
Pruébalo en línea!
Función anónima que toma una matriz de números como entrada y genera una matriz de 2 elementos como salida. El primer elemento en la matriz de salida es una matriz de números iniciales, el segundo elemento en la matriz de salida es una matriz de los siguientes números.
fuente