Este projeto foi desenvolvido como parte do módulo de Ciências da Computação do curso de Desenvolvimento Web da Trybe. O objetivo principal é a implementação e otimização de algoritmos para resolver problemas diversos do dia a dia.
Os desafios são apresentados em arquivos Python dentro do diretório challenges
, e cada arquivo representa um problema a ser resolvido de forma individual, ou seja, os problemas não possuem conexão entre si.
Ao longo do desenvolvimento deste projeto, as seguintes competências foram trabalhadas:
- Lógica: Uso de raciocínio lógico para resolver problemas.
- Capacidade de interpretação de problemas: Entender e descrever claramente as questões propostas.
- Capacidade de interpretação de código legado: Analisar e trabalhar com códigos já existentes.
- Capacidade de otimização: Implementar soluções eficientes e de alta performance.
A estrutura de diretórios e arquivos do projeto é apresentada abaixo:
.
├── challenges
│ ├──🔹 challenge_anagrams.py
│ ├──🔸 challenge_encrypt_message.py
│ ├──🔹 challenge_find_the_duplicate.py
│ ├──🔹 challenge_palindromes_iterative.py
│ ├──🔹 challenge_palindromes_recursive.py
│ └──🔹 challenge_study_schedule.py
├── tests
│ ├── encrypt
│ │ ├──🔸 __init__.py
│ │ ├──🔸 conftest.py
│ │ ├──🔸 mocks.py
│ │ └──🔹 test_encrypt.py
│ ├── results
│ │ └──🔸 .gitignore
│ ├──🔸 __init__.py
│ ├──🔸 complexities.py
│ ├──🔸 generators.py
│ ├──🔸 marker.py
│ ├──🔸 test_anagrams.py
│ ├──🔸 test_find_the_duplicate.py
│ ├──🔸 test_palindromes_iterative.py
│ ├──🔸 test_palindromes_recursive.py
│ └──🔸 test_study_schedule.py
├──🔸 dev-requirements.txt
├──🔸 pyproject.toml
├──🔸 README.md
├──🔸 requirements.txt
├──🔸 setup.cfg
├──🔸 setup.py
├──🔸 trybe-filter-repo.sh
└──🔸 trybe.yml
Legenda:
- 🔸 Arquivos que não podem ser alterados.
- 🔹 Arquivos a serem alterados para realizar os requisitos.
Antes de iniciar, é necessário ter o Python instalado no seu sistema. Siga os passos abaixo para rodar o projeto:
-
Clone o repositório:
git clone /~https://github.com/SamuelRocha91/algorithms-project.git
-
Acesse o diretório do projeto:
cd Alghorithms
-
Instale as dependências de desenvolvimento:
pip install -r dev-requirements.txt
Para rodar os testes e verificar se as implementações estão corretas, utilize o seguinte comando:
pytest
Os testes estão localizados no diretório tests
e cobrem os principais desafios apresentados no projeto.