DIOBootcampNodejs Desafios Save

Resolução dos desafios propostos no bootcamp de Node.js disponibilizado na plataforma da Digital Innovation One (DIO)

Project README

GitHUb Repo Views GitHub Repo stars GitHub top language

Bootcamp Node.js da Digital Innovation One

Descrição

Antes de continuar

  • É importante salientar que se você for um(a) aluno(a) da plataforma DIO, então será de melhor aproveitamento revisar o código e comparar com sua solução, ou apenas usar o código-fonte como inspiração para sua criatividade.
  • Leia as seções AVISOS IMPORTANTES e Execução.
  • Não proibo o uso do meu código na plataforma, mas isto não agregará para o seu aprendizado, e provavelmente só irá favorecer o crescimento da plataforma DIO, e não o seu.
  • E por último, mas não menos importante, independente do que você fizer, peço por gentileza apenas que dê uma ⭐ (Star) neste repositório e/ou siga meu perfil do GitHub como meio de sinalizar que consegui contribuir para seu aprendizado.

AVISOS IMPORTANTES

  • Para os desavisados e desatentos, os desafios deste repositório estão 100% em javascript.

  • Por favor, leia os comentários de cada desafio, pois alguns podem conter informações adicionais como, por exemplo, bugs encontrados nos testes da DIO na época que o código foi escrito, e, portanto, os mesmos podem ter sido corrigido quando você utilizar o mesmo código. Atente-se às estas informações para que você possa refatorar o código se necessário.

  • A comunidade me contatou para informar que o código do desafio Barras de Ouro não passa em apenas um dos testes fechados. Tentei contato com a DIO por e-mail e pelo Discord, mas obtive nenhuma resposta. Apesar disso, uma outra pessoa da comunidade conseguiu uma resposta - o Luan Fernandes - e ele postou a imagem da resposta que recebeu: Com isso vocês devem aguardar que a DIO corrija o tal bug.

  • UPDATE 19/12: Notificaram que "já corrigiram o bug", porém notei apenas que removeram dois testes, e o problemático permaneceu. No entanto, graças à refatoração feita pela Dev Camila#6476 (no Discord), eu pude analisar o código e encontrar os pontos que necessitavam de alteração para que o algoritmo fosse aprovado na plataforma da DIO. mensagem da Camila no Discord onde compartilha sua refatoração e cita meu repositório

    Obrigado 👉 Camila 👈 por sua contribuição!

  • Quanto ao desafio Tabuleiro Secreto, este certamente deveria passar em todos os testes, mas a comunidade informou que não está, porque retorna o erro tempo limite de execução excedido. No entanto, o algoritmo rodava, com a entrada mais massiva de dados fornecida pelo site uDebug em até 10 segundos na minha máquina, a qual não deve ser mais performática que o servidor da DIO. Refatorei o código e reduzi para entre 3.982 e 5.446 segundos, e ainda assim o erro persiste. Portanto, concluo que é uma instabilidade na plataforma da DIO, ou um novo bug, ou eles propositadamente alteraram algo no teste específico. O último é o menos provável, na minha opinião.

  • UPDATE 28/12: A procura pela solução do desafio do Tabuleiro Secreto foi grande, e meu conselho foi categoricamente o mesmo para todos que me pediram uma luz💡:

    Refatorem o algoritmo para reduzir o tempo de execução

    Como já citei, a solução era antes aceita sem problemas. E havia feito o meu melhor para escrever um código elegante e performático. Mas não foi o suficiente né? Pois então refatorei e escrevi uma feitiçaria que executa em torno de 2.5 segundos na pior carga dos testes, e a entrega foi aprovada novamente!! So, enjoy! 😎

  • Os códigos deste repositório são disponibilizados como são, e apesar de todos terem sidos aprovados quando os escrevi, os mesmos são disponibilizados sem nenhuma garantia. Agradeço a compreensão.

Execução

  • Os códigos estão preparados tanto para serem executados na plataforma da DIO quanto localmente, exigindo apenas uma pequena refatoração.

  • Caso queira executar na plataforma da DIO deverá remover/comentar o array de entrada e onde mais for atribuido os elementos do array de entrada, e descomentar onde a leitura dos dados é feita através do comando gets();

  • Para facilitar há comentários indicando onde o uso é local e na DIO.

Bons estudos!

Autor

João Trepichio
João Trepichio

Módulos publicados

01-Introdução a Programação com JavaScript (Básico barras que indicam nível básico )

Desafio Tipo
Visita na Feira Princípios Básicos
Multiplicação Simples Princípios Básicos
Folha de Pagamento Princípios Básicos

02-Fundamentos Aritméticos em JavaScript (Básico barras que indicam nível básico )

Desafio Tipo
Quantidade de Números Positivos Princípios Básicos
Exibindo Números Pares Princípios Básicos
Análise de Números Princípios Básicos
Contagem de Cédulas Princípios Básicos
Consumo Médio do Automóvel Princípios Básicos

03-Ordenação e Filtros em JavaScript (Intermediário barras que indicam nível intermediário )

Desafio Tipo
Ordenando Números Pares e Ímpares Estrutura de Dados
Compras no Supermercado Estrutura de Dados
Uniformes de final de ano Estrutura de Dados
Fila do Banco Estrutura de Dados
Gincana no Acampamento Estrutura de Dados

04-Introdução a Busca e Substituição em JavaScript (Intermediário barras que indicam nível intermediário )

Desafio Tipo
Ordenação de palavras por tamanho Estrutura de Dados
Encontre a maior substring Strings
Validador de senhas com requisitos Strings
Pedra, Papel, Tesoura, Lagarto e Spock Strings
Atalhos para o Weblogger Brasil Strings

05-Solução de Problemas com JavaScript (Avançado barras que indicam nível avançado )

Desafio Tipo
Contagem repetida de números Ad-Hoc
Vogais Extraterrestres Strings
Melhor amigo do Pablo Estrutura de Dados
Entrevista embaraçosa Strings
Conjuntos bons ou ruins? Strings
Produto e divisão Ad-Hoc
Barras de ouro Grafos

06-Resolvendo Algoritmos com JavaScript (Avançado barras que indicam nível avançado )

Desafio Tipo
Coração das cartas Paradigmas
Abreviando posts do blog Strings
Combinação de strings Strings
Hash Mágico Strings
O tabuleiro secreto Ad-Hoc
Open Source Agenda is not affiliated with "DIOBootcampNodejs Desafios" Project. README Source: trepichio/DIOBootcampNodejs-Desafios
Stars
148
Open Issues
0
Last Commit
3 years ago

Open Source Agenda Badge

Open Source Agenda Rating