SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
DESAFÍO TOTAL:
CÓMO RESOLVER RETOS EXTREMOS
¿Por qué participar?
● ¡Premios!
● Promoción personal
● Conocer gente, socializar
● Aprender y mejorar
● ¡Es divertido!
Concursos extremos
de programación
#ETSChallenge
¡Es hora de probar su efectividad en Chimpancés!
El origen del planeta de los simios
“Un grupo de investigación secreto está desarrollando
un nuevo fármaco que aumenta significativamente la
inteligencia.”
Problema 1
#ETSChallenge
El origen del planeta de los simios
● Todos los interruptores están inicialmente ON
● La caja se abrirá cuando estén todos OFF
● El interruptor de la derecha se puede conmutar siempre
● Cualquier otro interruptor se puede conmutar, si y sólo si,
su interruptor de la derecha está ON y el resto OFF
● Irremediablemente queremos abrir la caja cuanto antes
...
Objetivo: Mínimo número de conmutaciones para N interruptores
#ETSChallenge
111
110
010
011
001
000
El origen del planeta de los simios
1111
1101
1100
0100
0101
0111
0110
0010
0011
0001
0000
...
11111
11110
11010
11011
11001
11000
01000
01001
01011
01010
01110
01111
…
111111
111101
111100
110100
110101
110111
110110
110010
110011
110001
110000
010000
010001
010010
010110
010111
010101
010100
011100
011101
011111
...
11
01
00
n MOV
1 1
2 2
3 5 1 + 2 + 2
4 10 2 + 3 + 5
5 21 5 + 6 + 10
6 42 10 + 11 + 21
N ? ?? + ?? + ??N ? (N-2) + (N-2) +1 + (N-1) = 2(N-2) + (N-1) + 1
+N-1
+N-1
#ETSChallenge
El origen del planeta de los simios
def minMovements= { numSwitches ->
BigInteger result
switch (numSwitches) {
case 1:
result = 1
break
case 2:
result = 2
break
default:
result = 2 * minMovements(numSwitches -2) + minMovements(numSwitches -1) +1
break
}
result
}
2(N-2) + (N-1) + 1
Complejidad:
O(2n
)
O(n)
}.memoize()
#ETSChallenge
¡Es hora de probar su efectividad!
Love is in the air
Problema 2
#ETSChallenge
“Partimos del axioma (no probado) de que ligar es
cuestión de probabilidad. Aprovechemos San Valentín
para enviar masivamente flores con un dron antes de
que se termine la batería”.
Love is in the air
● Un mapa bidimensional indica los N objetivos amorosos
● La batería permite un número limitado de movimientos
● Buena época, la ciudad está plagada de rosas.
● Parar a por una rosa nos supone un coste despreciable
● Existe espacio aéreo reservado o infranqueable
Objetivo: Movimientos mínimos para optimizar entregas
#ETSChallenge
Love is in the air
X X X X X X X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X O D X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X T T X X X X
X X X X X X X X X X
T = Objetivo
X = Infranqueable
O = Espacio aéreo
D = Dron#ETSChallenge
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X O D X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X T T X X X X
Grafo totalmente conexo
Nodos = D y T
Coste de NodoA a NodoB = camino más corto de A a B (Dijkstra)
Love is in the air
#ETSChallenge
Love is in the air
El problema del
viajante
NP - COMPLETO
#ETSChallenge
● Casos pequeños: Fuerza bruta
● Heurísticas o subóptimos
○ El vecino más próximo a mi posición
○ El vecino más próximo a mi y más lejano a meta
○ ...
● Encontrar subproblemas para los cuales heurísticas
mejores o algoritmos exactos son posibles
○ Combinación de heurísticas y fuerza bruta
■ Ramificación y acotación
■ Reordenamiento parcial
■ ...
Love is in the air
El problema del
viajante
NP - COMPLETO
#ETSChallenge
Aprendiendo a competir
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entiende el entorno
● Entiende la evaluación de la competición
○ Número de problemas
○ Puntuación de cada problema
○ Exactitud de las soluciones
○ Importancia de la velocidad de entrega
○ Condiciones bloqueantes
● Comprende qué evalúa cada problema
○ La exactitud es lo más importante
○ Limpieza de código
○ Complejidad computacional
○ Uso de memoria
● Lee (al menos) 5 veces el enunciado
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
¿Qué lenguaje escoger?
● Depende del problema concreto a resolver
● Suelen ser buenos...
○ Lenguajes de alto nivel que permiten scripting
○ Poco verbosos
○ Con excelente manejo de colecciones
○ Capacidades funcionales (pattern matching)
○ Vitaminados
● Por ejemplo:
○ python, groovy, haskell, scala,...
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entrada / salida
● El formato de entrada/salida es importante
○ Entrada por fichero
○ Entrada por línea de comando
○ Consumición de API
○ Función y test
● Ojo con entradas grandes
○ Problemas de rendimiento
○ Desbordamiento de memoria
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entrada / salida por fichero
● Input
2
5
4 4
O O O X
O X O X
O X O X
M X B X
10
4 4
O O O M
O X O X
M X O X
O X B X
● Output
NO
9
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Resumiendo
● Tipos de retos
○ Transformaciones I/O
○ Manejo de colecciones
○ Relaciones de recurrencia
○ Pattern matching
○ Problemas N-P
○ Encriptación
● ¡Ojo!
○ Testing de extremos
○ Int overflow
○ Desbordamiento de memoria
○ Complejidad computacional exponencial
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
¡Gracias! ¿Preguntas?
DESAFÍO TOTAL …COMPLETADO
@rafbermudez
@EtsFactory ETS Asset Management Factory#ETSChallenge

Más contenido relacionado

Destacado (8)

детектив
детективдетектив
детектив
 
Algunos+tipos+de+polímeros+1
Algunos+tipos+de+polímeros+1Algunos+tipos+de+polímeros+1
Algunos+tipos+de+polímeros+1
 
advisory committee
advisory committeeadvisory committee
advisory committee
 
Vinoth Resume
Vinoth ResumeVinoth Resume
Vinoth Resume
 
שרשרת קריטית ניהול פרוייקטים 2
שרשרת קריטית   ניהול פרוייקטים 2שרשרת קריטית   ניהול פרוייקטים 2
שרשרת קריטית ניהול פרוייקטים 2
 
Fabry Disease Kidney Progression - 14 February 2014
Fabry Disease Kidney Progression - 14 February 2014Fabry Disease Kidney Progression - 14 February 2014
Fabry Disease Kidney Progression - 14 February 2014
 
Vitória no deserto aline barros
Vitória no deserto   aline barrosVitória no deserto   aline barros
Vitória no deserto aline barros
 
ANGGOTA PAGUYUBAN PURNA WIDYA PRAJA
ANGGOTA PAGUYUBAN PURNA WIDYA PRAJAANGGOTA PAGUYUBAN PURNA WIDYA PRAJA
ANGGOTA PAGUYUBAN PURNA WIDYA PRAJA
 

Más de Rafael Bermúdez Míguez

Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Rafael Bermúdez Míguez
 
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)
Angular 2 for dart  mentiras y verdades (Google I/O extended Madrid)Angular 2 for dart  mentiras y verdades (Google I/O extended Madrid)
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)Rafael Bermúdez Míguez
 
Construyendo tu propia bola de cristal predicción de precios con machine lea...
Construyendo tu propia bola de cristal  predicción de precios con machine lea...Construyendo tu propia bola de cristal  predicción de precios con machine lea...
Construyendo tu propia bola de cristal predicción de precios con machine lea...Rafael Bermúdez Míguez
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresRafael Bermúdez Míguez
 
Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Rafael Bermúdez Míguez
 
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...Rafael Bermúdez Míguez
 

Más de Rafael Bermúdez Míguez (8)

Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)
 
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)
Angular 2 for dart  mentiras y verdades (Google I/O extended Madrid)Angular 2 for dart  mentiras y verdades (Google I/O extended Madrid)
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)
 
Gorm for cassandra
Gorm for cassandraGorm for cassandra
Gorm for cassandra
 
Construyendo tu propia bola de cristal predicción de precios con machine lea...
Construyendo tu propia bola de cristal  predicción de precios con machine lea...Construyendo tu propia bola de cristal  predicción de precios con machine lea...
Construyendo tu propia bola de cristal predicción de precios con machine lea...
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadores
 
Acercádonos a dart
Acercádonos a dartAcercádonos a dart
Acercádonos a dart
 
Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)
 
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Desafío total: cómo resolver retos extremos

  • 2. ¿Por qué participar? ● ¡Premios! ● Promoción personal ● Conocer gente, socializar ● Aprender y mejorar ● ¡Es divertido! Concursos extremos de programación #ETSChallenge
  • 3. ¡Es hora de probar su efectividad en Chimpancés! El origen del planeta de los simios “Un grupo de investigación secreto está desarrollando un nuevo fármaco que aumenta significativamente la inteligencia.” Problema 1 #ETSChallenge
  • 4. El origen del planeta de los simios ● Todos los interruptores están inicialmente ON ● La caja se abrirá cuando estén todos OFF ● El interruptor de la derecha se puede conmutar siempre ● Cualquier otro interruptor se puede conmutar, si y sólo si, su interruptor de la derecha está ON y el resto OFF ● Irremediablemente queremos abrir la caja cuanto antes ... Objetivo: Mínimo número de conmutaciones para N interruptores #ETSChallenge
  • 5. 111 110 010 011 001 000 El origen del planeta de los simios 1111 1101 1100 0100 0101 0111 0110 0010 0011 0001 0000 ... 11111 11110 11010 11011 11001 11000 01000 01001 01011 01010 01110 01111 … 111111 111101 111100 110100 110101 110111 110110 110010 110011 110001 110000 010000 010001 010010 010110 010111 010101 010100 011100 011101 011111 ... 11 01 00 n MOV 1 1 2 2 3 5 1 + 2 + 2 4 10 2 + 3 + 5 5 21 5 + 6 + 10 6 42 10 + 11 + 21 N ? ?? + ?? + ??N ? (N-2) + (N-2) +1 + (N-1) = 2(N-2) + (N-1) + 1 +N-1 +N-1 #ETSChallenge
  • 6. El origen del planeta de los simios def minMovements= { numSwitches -> BigInteger result switch (numSwitches) { case 1: result = 1 break case 2: result = 2 break default: result = 2 * minMovements(numSwitches -2) + minMovements(numSwitches -1) +1 break } result } 2(N-2) + (N-1) + 1 Complejidad: O(2n ) O(n) }.memoize() #ETSChallenge
  • 7. ¡Es hora de probar su efectividad! Love is in the air Problema 2 #ETSChallenge “Partimos del axioma (no probado) de que ligar es cuestión de probabilidad. Aprovechemos San Valentín para enviar masivamente flores con un dron antes de que se termine la batería”.
  • 8. Love is in the air ● Un mapa bidimensional indica los N objetivos amorosos ● La batería permite un número limitado de movimientos ● Buena época, la ciudad está plagada de rosas. ● Parar a por una rosa nos supone un coste despreciable ● Existe espacio aéreo reservado o infranqueable Objetivo: Movimientos mínimos para optimizar entregas #ETSChallenge
  • 9. Love is in the air X X X X X X X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X O D X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X T T X X X X X X X X X X X X X X T = Objetivo X = Infranqueable O = Espacio aéreo D = Dron#ETSChallenge
  • 10. X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X O D X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X T T X X X X Grafo totalmente conexo Nodos = D y T Coste de NodoA a NodoB = camino más corto de A a B (Dijkstra) Love is in the air #ETSChallenge
  • 11. Love is in the air El problema del viajante NP - COMPLETO #ETSChallenge
  • 12. ● Casos pequeños: Fuerza bruta ● Heurísticas o subóptimos ○ El vecino más próximo a mi posición ○ El vecino más próximo a mi y más lejano a meta ○ ... ● Encontrar subproblemas para los cuales heurísticas mejores o algoritmos exactos son posibles ○ Combinación de heurísticas y fuerza bruta ■ Ramificación y acotación ■ Reordenamiento parcial ■ ... Love is in the air El problema del viajante NP - COMPLETO #ETSChallenge
  • 13. Aprendiendo a competir Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 14. Entiende el entorno ● Entiende la evaluación de la competición ○ Número de problemas ○ Puntuación de cada problema ○ Exactitud de las soluciones ○ Importancia de la velocidad de entrega ○ Condiciones bloqueantes ● Comprende qué evalúa cada problema ○ La exactitud es lo más importante ○ Limpieza de código ○ Complejidad computacional ○ Uso de memoria ● Lee (al menos) 5 veces el enunciado Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 15. ¿Qué lenguaje escoger? ● Depende del problema concreto a resolver ● Suelen ser buenos... ○ Lenguajes de alto nivel que permiten scripting ○ Poco verbosos ○ Con excelente manejo de colecciones ○ Capacidades funcionales (pattern matching) ○ Vitaminados ● Por ejemplo: ○ python, groovy, haskell, scala,... Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 16. Entrada / salida ● El formato de entrada/salida es importante ○ Entrada por fichero ○ Entrada por línea de comando ○ Consumición de API ○ Función y test ● Ojo con entradas grandes ○ Problemas de rendimiento ○ Desbordamiento de memoria Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 17. Entrada / salida por fichero ● Input 2 5 4 4 O O O X O X O X O X O X M X B X 10 4 4 O O O M O X O X M X O X O X B X ● Output NO 9 Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 18. Resumiendo ● Tipos de retos ○ Transformaciones I/O ○ Manejo de colecciones ○ Relaciones de recurrencia ○ Pattern matching ○ Problemas N-P ○ Encriptación ● ¡Ojo! ○ Testing de extremos ○ Int overflow ○ Desbordamiento de memoria ○ Complejidad computacional exponencial Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 19. ¡Gracias! ¿Preguntas? DESAFÍO TOTAL …COMPLETADO @rafbermudez @EtsFactory ETS Asset Management Factory#ETSChallenge