Competitive Programming

“Given well-known Computer Science (CS) problems, solve them as quickliy as possible!”

Durante todo el 1er semestre (y de hecho, incluso ahora) estuve obsesionada con encontrar mi propia solución a muchos problemas de algoritmia, nunca busqué en internet la solución a ningún problema de programación (a excepción del problema de pasar de notación INFIX  a POSTFIX). Pero en estos últimos días me di cuenta de algo: no tiene sentido continuar así · n ·

Pero, antes de que muchos de mis amigos que aún persisten en la insesante lucha de encontrar sus propias soluciones saquen sus antorchas y quieran quemarme en una hoguera por hereje (Gustavo Callejas :D), permítanme explicar el fundamento de tan herética proposición:

Como desarrolladores, tenemos que ser rápidos, tenemos que encontrar la solución más apropiada para los problemas, pero, si cada vez que nos topamos con algún problema, pretendemos querer solucionarlo desde 0, no solo tardaremos mucho, sino que también, nuestra solución podría no ser la más adecuada.

Podremos ver nuevos horizontes, si y solo si, nos paramos sobre los hombros de los gigantes.

Hay que aceptar que, gran parte de los problemas de algoritmia, ya fueron solucionados por otros programadores brillantes, quienes a su vez, también utilizaron, entendieron y adaptaron, las soluciones de otros programadores brillantes.

¡Ya habrá tiempo para solucionar problemas de algoritmia sin solución! por ahora, es mejor entender todas las soluciones que ya han sido planteadas para poder proponer las nuestras en un futuro (espero, no muy lejano), y que estas soluciones que nosotros contribuyamos (en el futuro), ayuden a otros programadores novatos a solucionar problemas “solucionables” en los contests.

¿Pero… si esto fuera cierto, entonces la ACM-ICPC (y todos los contests de competitive programming) se reducen a copiar, pegar y ver quién typea más rápido? ¡no del todo!

Como desarrolladores, en los contests, tenemos que llevar a los límites nuestro conocimiento de algoritmos, identificando problemas, encajándolos en algoritmos conocidos… está de más decir que, para hacer esto, es necesario conocer muy bien las limitaciones y ventajas de cada uno de los algoritmos, así como su funcionamiento ~_^

Así que, con este post, quiero despedirme de mi orgullo (infundado)… de ahora en adelante, bucaré soluciones parciales!

(Migración de Tumblr a WordPress, fecha original: 2013-10-04)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s