Eres un hábil joyero especializado en diamantes cuyo negocio mejora día a día. Con el tiempo, decidiste que necesitabas ampliar tu capacidad para satisfacer la demanda.
- Construye una máquina para cortar diamantes (es decir, escribe una función que reciba un entero positivo que represente los quilates de la piedra en bruto).
- La salida debe ser el diamante terminado y una etiqueta que indique su calidad, organizados en un arreglo de dos elementos.
- El primer elemento debe ser un arreglo de arreglos que represente el diamante.
- El segundo elemento debe ser una cadena que indique "perfect cut" si todas las aristas del diamante son puntiagudas o "good cut" en caso contrario.
Ejemplos
diamond(3) ➞ [
[[0, 1, 0],
[1, 0, 1],
[0, 1, 0]],
"perfect cut"
]
// Perfect edge.
diamond(4) ➞ [
[[0, 1, 1, 0],
[1, 0, 0, 1],
[0, 1, 1, 0]],
"good cut"
]
// First and last rows had blunt edges with two 1s each.
diamond(11) ➞ [
[[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]],
"perfect cut"
]
Notas
- En el mundo del joyero, el corte es más importante que los quilates. Por eso, para reducir la cantidad de bordes romos, la máquina reduciría el tamaño del diamante.
- En el segundo ejemplo de una piedra en bruto de 4 quilates, la máquina produce un diamante terminado de solo 3 filas para que haya solo 2 bordes romos, en lugar de 4.
- En el primer y tercer ejemplo, la máquina pudo producir diamantes de n filas a partir de piedras de n quilates.