há mais ou menos uns 2 anos me vi preso em um codigo simples de javascript que não conseguia entender, eu precisava praticar mas não sabia aonde, foi quando um amigo me recomendou usar a plataforma Beecrowd (antigo URI Online jugde). Deste então venho praticando respondendo questões e desenvolvendo meu pensamento lógico.
Praticando quase todos os dias, 609 questões (ou mais) diferentes de categorias diferentes, desde um simples "Hello World" (1000) até problemas mais complexos me fizeram sentir que em algum grau houve uma evolução.
Coisas que aprendi:
-- estruturas de dados: filas, pilhas, arrays, matrizes, vetores, hash_tables, arvores, filas prioritarias, set, classes ...
-- algoritmos: algoritmos de busca (DFS, BFS, Busca binaria), de ordenação(bubble sort, quick sort, conting sort, merge sorte, selection sort, insertion sort, bucket sort...)
-- tecnicas: sliding window, contagem de frequencia, recursão, swap, greedy, lookup_table, memorization
-- complexidas: notação big O (O(1), O(n), O(log n), O(n + k), O(n^2)...)
-- linguagens: python, c++, javascript, typescript, java, php, rust, sql.
Claro, eu não fiz tudo isso sozinho. em muitos momento precisei de ajuda, lendo a respostas de outras pessoa, foruns, usando outros repositorios no github que continha respostas, com auxilio de inteligência artificial (chat GPT), e etc..
Gosto de resolver estas questões e provavelmente irei continuar respondendo, quero tambem refatorar algumas soluões antigas, usar minhas nova habilidades e tambem quero anexar explicações mais elaboradas sobre a logica que usei em cada questão.