The Code Maverick (3/3 💉) Profile picture
#Codenares (Lite) #EUROBOTUAH Nullum magnum ingenium sine mixture dementia fuit

Dec 14, 2022, 11 tweets

El octavo de #AdventOfCode parte 2 en SQL. Un poco ñapas para mi gusto pero es lo que hay!

Empezamos como siempre..

Limpiamos linea alinea y separamos x, y, altura para cada arbol usando CTEs en secuencia.

Cruzamos cada arbol con su scan a derecha, izquierda, arriba y abajo con sub-consultas correlacionadas. Hay que cambair el orden de los que devuleven para que quedan en funcioón del punto de vista. Cada resultado se agrega en un array.

No me ha quedado mas remedio que tirar de código procedural porque mi coco no daba mas de si estos días.. Recorremos el array y devolvemos el primer indice "i" tal que altura mi arbol <= arboles[i].

Calculamos las vistas en cada direccion en base a los scans y esta función. Le he hecho un prólogo con CASE para no lidiar con el hecho de que el array de entrada podría ser NULL.

Para que os hagáis una idea aqui teneis el resultado intermedio con la arboleda de pruebas que nos dan.

Agrupamos en una subconsulta buscando el mayor indice "escénico" y la reunimos con la tabla completa para quedarnos con el arbol su altura y sus coordenadas (aunque esto no se pide realmente)

Finalmente cargamos el fichero de entrada y calculamos...

Como no materializo, no puedo hacer índices, y trajinar la lista arriba y abajo le cuesta un poco, en total unos 27-29 segundos..

En fin.
Sigo impar y voy con retraso...

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling