- Tabela de Conteúdo
- Sobre o Projeto
- Como utilizar o repositório
- Sobre o Beecrowd
- Fluxo de versionamento
- Feito Com
- Linguagens suportadas
- Estrutura de Arquivos
- Contribuição
- Licença
- Contato
Este repositório contém soluções para diversos desafios do Beecrowd, uma plataforma online que oferece problemas para treinar habilidades em programação e algoritmos.
Cada problema é descrito em uma página com um enunciado e um conjunto de exemplos de entrada e saída. As soluções aqui apresentadas foram desenvolvidas em Python e em Java, mas futuramente será possível encontrar soluções em outras linguagens no repositório.
As soluções estão organizadas em pastas, cada uma com o nome do problema correspondente. Dentro de cada pasta, há um arquivo com a solução, bem como um arquivo de entrada e um arquivo de saída que foram utilizados para testar a solução.
Para utilizar uma solução, basta baixar o arquivo correspondente e executá-lo em um ambiente de desenvolvimento ou em um terminal utilizando o comando correspondente da linguagem utilizada.
Para a linguagem Python basta entrar no diretorio do problema e executar o seguinte comando:
python3 solution.py < input.txt | tee output.txt
As soluções aqui apresentadas são apenas exemplos e não representam necessariamente a melhor ou a única forma de resolver cada problema. Além disso, as soluções foram desenvolvidas para atender aos requisitos específicos de cada problema e podem precisar de adaptações para serem utilizadas em outros contextos.
O Beecrowd é uma plataforma online que oferece problemas de programação e algoritmos para praticar e aprimorar habilidades em diferentes linguagens de programação. O site conta com uma grande variedade de problemas, desde problemas simples de lógica até problemas avançados de algoritmos e estruturas de dados.
Os problemas são organizados em diferentes categorias, como matemática, estruturas de dados, grafos e processamento de strings, entre outras. Cada problema é descrito em uma página com um enunciado, exemplos de entrada e saída e uma área para submeter a solução em diferentes linguagens de programação.
A plataforma é gratuita e permite que os usuários acompanhem o seu progresso, resolvendo problemas em diferentes níveis de dificuldade e competindo com outros usuários em rankings. O Beecrowd também é uma ótima fonte de desafios para preparação em competições de programação.
Projeto segue regras de versionamento gitflow.
Abaixo segue o que foi utilizado na criação deste projeto:
- Python - Python é uma linguagem de programação de alto nível, interpretada de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em 1991.
- Java - Java é uma linguagem de programação orientada a objetos desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems, que em 2008 foi adquirido pela empresa Oracle Corporation.
Atualmente, o projeto suporta as seguintes linguagens de programação:
-
Python
-
Java
As soluções para os problemas em cada categoria podem estar disponíveis em uma ou mais dessas linguagens.
A estrutura de pastas está da seguinte maneira:
.
├── AD-HOC
├── Estruturas e Bibliotecas
├── Geometria Computacional
├── Grafos
├── Iniciante
├── Matematica
├── Origens
├── Paradigmas
├── SQL
└── String
Serão explicados os arquivos e diretórios na seção de Edição.
Nesta seção haverão instruções caso você queira editar o projeto, explicando para que os diretórios são utilizados e também os arquivos de configuração.
-
AD-HOC - Diretório contendo soluções de problemas que podem ser resolvidos utilizando programação simples, geralmente com pouca complexidade algorítmica. Este diretório também pode conter problemas que não se encaixam em outras categorias.
-
Estruturas e Bibliotecas - Diretório contendo soluções de problemas que envolvem o uso de estruturas de dados e/ou bibliotecas específicas para solução de problemas mais complexos.
-
Geometria Computacional - Diretório contendo soluções de problemas que envolvem cálculos geométricos, como distâncias entre pontos, áreas, ângulos, intersecções, convexidade, entre outros.
-
Grafos - Diretório contendo soluções de problemas que envolvem grafos e teoria dos grafos, como caminhos mínimos, fluxo máximo, árvores geradoras mínimas, conectividade, entre outros.
-
Iniciante - Diretório contendo soluções de problemas para iniciantes em programação competitiva, que abrangem conceitos básicos de programação, como estruturas de controle, variáveis, tipos de dados, laços, entre outros.
-
Matemática - Diretório contendo soluções de problemas que envolvem conceitos matemáticos, como números primos, fatoração, geometria analítica, combinatória, teoria dos números, entre outros.
-
Origens - Diretório contendo soluções de problemas de competições específicas, como o Codeforces e o URI Online Judge, e também soluções de problemas de plataformas de treinamento, como o HackerRank e o CodeChef.
-
Paradigmas - Diretório contendo soluções de problemas que envolvem paradigmas de programação, como força bruta, dividir para conquistar, busca binária, programação dinâmica, entre outros.
-
SQL - Diretório contendo soluções de problemas que envolvem linguagem SQL, como queries para selecionar, inserir, atualizar e deletar dados em bancos de dados.
-
String - Diretório contendo soluções de problemas que envolvem manipulação de strings, como busca de padrões, concatenação, parsing, formatação, entre outros.
Cada diretório de categoria contém soluções para os problemas correspondentes. As soluções estão disponíveis nas linguagens suportadas, sendo que algumas categorias podem não ter soluções... ainda.
Contribuições são o que fazem a comunidade open source um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.
- Faça um Fork do projeto
- Crie uma Branch para sua Feature (
git checkout -b feature/FeatureIncrivel
) - Adicione suas mudanças (
git add .
) - Comite suas mudanças (
git commit -m 'Adicionando uma Feature incrível!
) - Faça o Push da Branch (
git push origin feature/FeatureIncrivel
) - Abra um Pull Request
Entre em contato comigo em um dos seguintes lugares!
- Linkedin em Gerson Santos
- Instagram gersonrsantos
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
Me acompanhe nas minhas redes sociais.
Feito com ❤️ by Gerson