¿Cuáles son los algoritmos y las estructuras de datos que tengo que aprender para competir en Google Code Jam?

Google Code Jam o cualquier otro concurso de programación competitivo no tiene un programa de estudios bien definido. Algunos temas son más populares y otros son menos. Pero depende completamente del creador del problema.

El enfoque no debe ser aprender estructuras de datos y algoritmos y luego resolver problemas de programación, sino todo lo contrario. Aborde los problemas, quédese atascado, piense x cantidad de tiempo, haga una lluvia de ideas, proponga diferentes soluciones (la mayoría de las cuales fallará ). Y luego, cuando termines, mira el editorial. Vea si se usa algún algoritmo nuevo, aprenda eso, implemente por su cuenta y resuelva ese problema y algo más sobre ese tema en particular. Los beneficios de esto son:

  • Aprenderá a abordar el problema con una mente fresca (sin saber qué algoritmo funcionará y cuál no)
  • Aprenderás paciencia (créeme, es una gran cualidad tener como programador y tener éxito. Porque en la vida real, a menudo fallarás en la mayoría de las cosas que harás, y tener esa paciencia para probar o más tiempo con un nuevo enfoque es esencial para el éxito)
  • Una vez que aprenda el algoritmo de esta manera, es más probable que lo recuerde cuando lo necesite la próxima vez. (En comparación con la lectura de todos los algoritmos y luego tratar de resolver un problema)

Pero aún así, si necesita verificar qué tipo de algoritmos se solicitan más en concursos competitivos, aquí hay algunos excelentes artículos sobre eso. Ve a través de ellos.

Los 10 algoritmos y estructuras de datos más importantes para la programación competitiva – GeeksforGeeks

¡Una lista increíble para programación competitiva! – Codeforces ( Marque esto con seguridad)

¿Cómo prepararse para ACM – ICPC? – GeeksforGeeks (Esto tiene la mayoría de los temas enumerados para ACM ICPC y para cualquier otro concurso de programación competitiva popular que incluye Google Code Jam )

Espero que haya ayudado.