Mi universidad comienza a enseñar estructuras de datos y algoritmos en el segundo año. Dado que conozco C / C ++, ¿qué debo hacer en el primer año que me dará una ventaja en la programación competitiva?

  1. Práctica : Conoces C y C ++, escribe al menos un código diariamente. Hay muchos programas pequeños que puede escribir sin el conocimiento de DS y A. Dé una hora o más al día.

    Además, DIV-2 250 en Topcoder, Problema A en Codeforces, el primer problema en concursos de Codechef: no necesita ningún DS o A para resolverlo. Puedes intentar resolverlos todos.

    O en Codechef o SPOJ, puede ordenar los problemas por número de envíos exitosos, comenzar a resolver los problemas en ese orden.

  2. No esperes: ¿Por qué esperar a que la universidad te enseñe DSA? Hay miles de fuentes para aprender DSA básico: sitios web, libros, blogs, cursos, etc.

    Puede aprender DS básico como matrices, lista vinculada, pila, cola, pueden ser gráficos y árboles también si puede, por su cuenta, realmente.
    Comprender los algoritmos relacionados con estos DS básicos.
    Con esto puedes resolver más problemas.
    Puede buscar problemas basados ​​en etiquetas Codechef – Etiquetas | CodeChef, Juez en línea A2: encuentre los problemas relacionados con cualquier DS nuevo que haya aprendido y resuélvalos.

  3. Aprenda STL: después de conocer la implementación de estructuras de datos básicas, puede aprender STL en C ++ para ahorrar tiempo. Esta biblioteca es muy útil en CP.
  4. Participa : participa en concursos para aprender, no por rango o puntos.
    Los concursos largos de Codechef son mis favoritos. Puedes participar en Codeforces Div2, Topcoder Div2, Hackerearth easy challenge y concursos universitarios, proyectores, etc. Hay muchas plataformas.

    Comprueba qué problemas puedes resolver y cuáles no. Echa un vistazo a editoriales de todos los problemas. Enfoca los problemas que no puedes resolver. Aprende nuevos DS, Algos relacionados con eso.

  5. Vaya más allá de CP : intente construir un sistema pequeño, una aplicación pequeña que pueda usar para usted usando CP. No te limites a la PC. Busque en Github si puede contribuir a algunos proyectos pequeños y fáciles de código abierto.

    Dale tiempo, no te apresures. Ve paso a paso, lentamente, aprenderás todo.

Gracias por A2A.

Dado que sabes que C y C ++ resuelven tu problema. Haz lo siguiente:
1.) Comience desde Sphere Online Judge (SPOJ) y resuelva problemas en orden descendente de número de envíos.
2.) Resuelve al menos 60 Div 2 problema A de Codeforces. Luego pase al problema BC D ……
3.) Participe en codechef long challange cada mes e intente resolver tantos problemas como sea posible.
4.) Lea los Aloritmos y las Estructuras de Datos de GeeksforGeeks.
Eso seguramente le dará una ventaja. Buena suerte.

Ya sabes C y C ++. Dice que tenía conocimientos básicos sobre cómo escribir programas con su propia lógica. Intente mejorar su implementación lógica resolviendo problemas de nivel básico en spoj, codechef, topcoder, codeforces, etc. ¡No se rinda! Si no puede resolver un problema, vaya una y otra vez. Aún así no puede resolverlo, entonces busque una solución en editoriales publicados. Para algunos problemas en spoj puede encontrar respuestas simplemente buscando en Google.

Una cosa más importante es seguir participando en concursos de codificación alojados en codecgef, codeforces y topcoder, etc.

Me encanta resolver … 🙂