Article image
Tiago Lazarini
Tiago Lazarini15/03/2023 15:59
Compartilhe

Como resolver desafios de JavaScript DIO

  • #JavaScript
  • #Benchmarking

Olá jovem, muitos vem me perguntar como realizar desafios na DIO, muitos têm uma boa lógica faltando somente um tutorial de como fazer corretamente teste fora do ambiente da plataforma, neste caso específico o JavaScript, segundo a linguagem não existe entrada nativamente via stdin console. E nisso muitos devs ficam perdidos.

Bom se é sua primeira vez realizando desafios de código provavelmente terás esta dúvida e muitas delas sobre resolução destes desafios.

Aliás bem simples venha comigo acabarei com todas dúvidas sobre realizar desafios dentro da DIO e fora dela.

Disclaimer: Primeiramente tens que gastar mais tempo entendendo o problema em si e somente depois fazer o algoritmo por ultimo, muitos se perdem no enunciado tentando resolver tudo de uma vez. Quebre em etapas menores, resolvendo uma parte por vez sem pressa. Curta, desafios são divertidos.

Se não souber como vem as entradas pode “debugar” comentando código e colocar um console.log(gets()), nisso mostrará ao apertar "Executar testes"

Neste exemplo usaremos o desafio bem simples: Dividindo Para Preservar do CodeCamp

Saindo no console:

image

Sua saída: 60

Este meio de "debugar" entradas e ver se tudo esta em ordem. Agora Esta em dúvida na saída estar certa ou não?

Simplesmente basta comentar toda lógica que fizeste e chamar um console.log com uma das saídas fornecidas do teste abertos, assim:

 console.log("Barraca da Direita")

image

Dando ao menos 1 certo mesmo sem colocar nenhuma lógica, saberá quando em casos de dúvidas como tem de ser a grafia das saídas solicitadas.

Sabendo disso como fazer fora do ambiente da DIO, trazendo para VSCODE por exemplo?

Primeiro temos criar o gets() e print() para possa testar no vscode igual é testado na DIO sem precisar modificar muita coisa na hora de passar o "juiz do desafio".

Método 1:

const input = require('fs').readFileSync('stdin', 'utf8');
let lines = input.split('\n');
const gets = _ => lines.shift()
const print = msg => console.log(msg)

Neste método é criaremos na raiz do workspace do vscode (pasta que onde esta aberta) um arquivo chamado stdin sem extensão somente stdin e dentro deste arquivo você digitará a entradas para testar.

Neste exemplo: valor 250

image

O desafio pede para se digitar valor seja par printar -> "Barraca da Direita" caso contrario "Barraca da Esquerda".

Nisso você pode testar no seu editor de texto/IDE e depois basta copiar da linha 7 a 14 e pronto, colar editor da plataforma e passará em todos teste.

Método 2:

Aqui não precisamos do métodos readFileSync() e criar arquivo stdin para poder testar.

Criamos um gets() e uma variável que chamarei de entrada:

image

Dica para testar se esta variação é rápida basta usar o site! https://jsbench.me/ para comparar cada variação que fizeste.

Obrigado a todos!

Deixe um comentário o que faltou no artigo, ou criticas são todas bem-vindas!

Compartilhe
Comentários (1)
Monica Cardoso
Monica Cardoso - 15/03/2023 16:31

Ficou ótimo, excelente adição o seu tutorial, bem necessário e útil! :D