Giter Site home page Giter Site logo

dio-java's Introduction

dio-java

contributions welcome

Aqui se encontram minhas implementações dos desafios de código da Digital Innovation One.

Sinta-se a vontade para contribuir, crie uma issue ou pull request!

🔸 Iniciando a programação em Java

Desafio Nível Resolução Testes
Exibindo Números Pares 🟪⬜⬜ 🏅 ExibindoNumerosPares.java ExibindoNumerosParesTest.java
Entrada e Saída CPF 🟪⬜⬜ 🏅 EntradaESaidaCPF.java EntradaESaidaCPFTest.java
DDD 🟪⬜⬜ 🏅 DDD.java DDDTest.java

🔸 Solucionando desafios matemáticos em Java

Desafio Nível Resolução Testes
Cálculo de viagem 🟪⬜⬜ 🏅 CalculoDeViagem.java CalculoDeViagemTest.java
Área do Círculo 🟪🟪⬜ 🏅 AreaDoCirculo.java AreaDoCirculoTest.java
Folha de Pagamento 🟪🟪⬜ 🏅 FolhaDePagamento.java FolhaDePagamentoTest.java
Múltiplos 🟪🟪⬜ 🏅 Multiplos.java MultiplosTest.java
Análise de Números 🟪⬜⬜ 🏅 AnaliseDeNumeros.java AnaliseDeNumerosTest.java

🔸 Solucionando problemas básicos em Java

Desafio Nível Resolução Testes
Multiplicação Simples 🟪⬜⬜ 🏅 MultiplicacaoSimples.java MultiplicacaoSimplesTest.java
Menor e Posição 🟪⬜⬜ 🏅 MenorEPosicao.java Aguardando testes
Números Ímpares 🟪⬜⬜ 🏅 NumerosImpares.java Aguardando testes

🔸 Primeiros passos em Java

Desafio Nível Resolução Testes
Domingo de Manhã 🟪⬜⬜ 🏅 DomingoDeManha.java DomingoDeManhaTest.java
A Resposta de Theon 🟪⬜⬜ 🏅 ARespostaDeTheon.java ARespostaDeTheonTest.java
Divisores I 🟪⬜⬜ 🏅 DivisoresI.java DivisoresITest.java

🔸 Desafios matemáticos em Java

Desafio Nível Resolução Testes
Área Direita 🟪⬜⬜ 🏅 AreaDireita.java AreaDireitaTest.java
Área Esquerda 🟪⬜⬜ 🏅 AreaEsquerda.java AreaEsquerdaTest.java
Área Inferior 🟪⬜⬜ 🏅 AreaInferior.java AreaInferiorTest.java

🔸 Praticando programação em Java

Desafio Nível Resolução Testes
Abreviando posts do blog 🟪🟪⬜ Aguardando solução Aguardando testes
Conjuntos bons ou ruins? 🟪🟪⬜ Aguardando solução Aguardando testes
Encontre a maior substring 🟪🟪⬜ Aguardando solução Aguardando testes

🔸 Desafios aritméticos em Java

Desafio Nível Resolução Testes
Divisores 🟪🟪🟪 Aguardando solução Aguardando testes
Análise de Números? 🟪⬜⬜ Aguardando solução Aguardando testes
Contagem repetida de números 🟪⬜⬜ Aguardando solução Aguardando testes

dio-java's People

Contributors

8rux40 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dio-java's Issues

Abreviando posts do blog

Desafio

Leonardo é um nômade digital e viaja pelo mundo programando em diferentes cafés das cidades por onde passa. Recentemente, resolveu criar um blog, para compartilhar suas experiências e aprendizados com seus amigos.

Para criação do blog, ele optou por utilizar uma ferramenta pronta, que há um limite de caracteres que se pode escrever por dia, e Leonardo está preocupado que essa limitação, afinal, irá impedir de contar suas melhores experiências. Para contornar esse problema, decidiu usar um sistema de abreviação de palavras em seus posts.

O sistema de abreviações é simples e funciona da seguinte forma: para cada letra, é possível escolher uma palavra que inicia com tal letra e que aparece no post. Uma vez escolhida a palavra, sempre que ela aparecer no post, ela será substituída por sua letra inicial e um ponto, diminuindo assim o número de caracteres impressos na tela.

Por exemplo, na frase: “hoje eu programei em Python”, podemos escolher a palavra “programei” para representar a letra ‘p', e a frase ficará assim: “hoje eu p. em Python”, economizando assim sete caracteres. Uma mesma palavra pode aparecer mais de uma vez no texto, e será abreviada todas as vezes. Note que, se após uma abreviação o número de caracteres não diminuir, ela não deve ser usada, tal como no caso da palavra “eu” acima.

Leonardo precisa que seu post tenha o menor número de caracteres possíveis, e por isso pediu a sua ajuda. Para cada letra, escolha uma palavra, de modo que ao serem aplicadas todas as abreviações, o texto contenha o menor número de caracteres possíveis.

Entrada

Haverá diversos casos de teste. Cada caso de teste é composto de uma linha, contendo uma frase de até 10⁴ caracteres. A frase é composta de palavras e espaços em branco, e cada palavra é composta de letras minúsculas ('a'-'z'), e contém entre 1 e 30 caracteres cada.

O último caso de teste é indicado quando a linha dada conter apenas um “.”, o qual não deverá ser processado.

Saída

Para cada caso de teste, imprima uma linha contendo a frase já com as abreviações escolhidas e aplicadas.

Em seguida, imprima um inteiro N, indicando o número de palavras em que foram escolhidas uma letra para a abreviação no texto. Nas próximas N linhas, imprima o seguinte padrão “C. = P”, onde C é a letra inicial e P é a palavra escolhida para tal letra. As linhas devem ser impressas em ordem crescente da letra inicial.

Exemplos de Entrada Exemplos de Saída
abcdef abc abc abc a. abc abc abc
. a
a. = abcdef

Contagem repetida de números

Desafio

Neste desafio sua tarefa será ler vários números e em seguida dizer quantas vezes cada número aparece, ou seja, deve-se escrever cada um dos valores distintos que aparecem na entrada por ordem crescente de valor.

Entrada

A primeira linha de entrada contem um único inteiro N, que indica a quantidade de valores que serão lidos para X (1 ≤ N ≤ 2000) logo em seguida. Com certeza cada número não aparecerá mais do que 20 vezes na entrada de dados.

Saída

Imprima a saída de acordo com o exemplo fornecido abaixo, indicando quantas vezes cada um deles aparece na entrada por ordem crescente de valor.

Exemplos de Entrada Exemplos de Saída
7 4 aparece 1 vez(es)
8 8 aparece 2 vez(es)
10 10 aparece 3 vez(es)
8 260 aparece 1 vez(es)
260
4
10
10

Área Esquerda

Desafio

Leia um caractere maiúsculo, que indica uma operação que deve ser realizada e uma matriz M[12][12]. Em seguida, calcule e mostre a soma ou a média considerando somente aqueles elementos que estão na área direita da matriz, conforme ilustrado abaixo (área verde).
image

Entrada

A primeira linha de entrada contem um único caractere Maiúsculo O ('S' ou 'M'), indicando a operação (Soma ou Média) que deverá ser realizada com os elementos da matriz. Seguem os 144 valores de ponto flutuante que compõem a matriz.

Saída

Imprima o resultado solicitado (a soma ou média), com 1 casa após o ponto decimal.

Exemplos de Entrada Exemplos de Saída
S 197.0
-19, 0, -7, 13, -4, 46, 23, -28, 33, -28, -31, 25
-9, 29, -48, 36, 7, -8, 48, 34, -42, 31, -11, -41
25, -20, -46, 14, 34, 49, 38, -29, 36, 30, 40, 36
38, 0, 10, -41, -8, -21, -7, -46, -24, 29, 11, -22
4, 12, 8, -45, 19, 29, 1, -29, -4, -28, -16, -38
14, 39, 35, -19, 16, -12, -20, 20, 15, 5, -37, 38
4, 4, 8, -31, 24, 22, 2, 16, 47, -48, 6, 32
18, 10, 36, -1, -23, 46, 20, -47, -17, 32, -47, -8
9, 26, -47, 12, 26, 45, 24, -4, 8, -46, -29, 13
9, 48, 11, 36, -40, 18, -28, 41, 40, 47, -34, 34
-28, -34, -41, -24, -42, 0, 48, -26, 16, -48, 6, 26
5, 15, -33, -33, -48, -3, -31, -29, -36, -47, -44, 10

Validador de senhas com requisitos

Desafio

Pedro e Fernando são os desenvolvedores em uma stratup e vão desenvolver o novo sistema de cadastro, e pediram a sua ajuda. Sua task é fazer o código que valide as senhas que são cadastradas, para isso você deve atentar aos requisitos a seguir:

  • A senha deve conter, no mínimo, uma letra maiúscula, uma letra minúscula e um número;
  • A mesma não pode ter nenhum caractere de pontuação, acentuação ou espaço;
  • Além disso, a senha pode ter de 6 a 32 caracteres.

Entrada

A entrada contém vários casos de teste e termina com final de arquivo. Cada linha tem uma string S, correspondente a senha que é inserida pelo usuário no momento do cadastro.

Saída

A saída contém uma linha, que pode ser “Senha valida.”, caso a senha tenha cada item dos requisitos solicitados anteriormente, ou “Senha invalida.”, se um ou mais requisitos não forem atendidos.

Exemplos de Entrada Exemplos de Saída
Digital Innovation One Senha invalida.
AbcdEfgh99 Senha valida.
DigitalInnovationOne123 Senha valida.
Digital Innovation One 123 Senha invalida.
Aass9 Senha invalida.
Aassd9 Senha valida.

Área Inferior

Desafio

Leia um caractere maiúsculo, que indica uma operação que deve ser realizada e uma matriz M[12][12]. Em seguida, calcule e mostre a soma ou a média considerando somente aqueles elementos que estão na área direita da matriz, conforme ilustrado abaixo (área verde).
image

Entrada

A primeira linha de entrada contem um único caractere Maiúsculo O ('S' ou 'M'), indicando a operação (Soma ou Média) que deverá ser realizada com os elementos da matriz. Seguem os 144 valores de ponto flutuante que compõem a matriz.

Saída

Imprima o resultado solicitado (a soma ou média), com 1 casa após o ponto decimal.

Exemplos de Entrada Exemplos de Saída
S -29.0
23, -8, -93, 46, 84, -94, -56, -88, 20, -15, -8, 44
-38, -88, -63, -96, -30, 82, 70, -10, 1, -6, -16, -8
-38, -40, -99, 83, 19, 66, -47, -9, 71, 17, -21, 59
-16, 35, 49, 92, -70, 39, 10, 41, 67, -60, 92, -31
45, 13, -86, -87, 91, 29, -3, 4, -19, 27, 29, 60
14, -29, 33, 91, 97, -67, 73, 94, 86, 41, -44, 79
13, 5, 60, 7, 64, -98, 34, -24, 11, -2, -36, -1
-75, 24, -51, 88, -79, 93, -6, -38, -48, 34, -27, 15
-68, 91, 2, -87, -7, -90, 76, -66, 47, 92, -52, -22
10, -21, -29, 68, -17, -26, -76, -92, -5, 91, 98, 19
60, 91, -20, 80, 80, -93, 73, 98, -30, -69, 93, -73
-2, -67, 52, 36, -38, -64, 70, 28, 2, -72, 53, -67

Entrevista embaraçosa

Desafio

A nutricionista Juliana Alcantra é uma excelente profissional de sua área. Em determinado dia, ela foi entrevistada ao vivo para um jornal da cidade. No entanto, ficou um pouco nervosa na hora, e diante da situação, sua fala ficou um pouco distorcida, repetindo o final de cada palavra após dizer a mesma. Para que isso não aconteça novamente, ela precisa da sua ajuda para escrever um programa que omita a parte repetida, de modo que as palavras sejam pronunciadas como deveriam ser.

Escreva um programa que, dada uma palavra errada, a mesma seja corrigida.

Entrada

Haverá diversos casos de teste. Cada caso de teste é formado por uma palavra, de, no máximo, 30 caracteres, dita da forma errada. A entrada termina com fim de arquivo.

Saída

Para cada caso de teste, escreva a palavra devidamente corrigida. Analise os exemplos para verificar o padrão, de modo a consertar todos os casos.

Exemplos de Entrada Exemplos de Saída
sanduicheiche sanduiche
barrilarril barril
ratoato rato
sol sol
coliseueu coliseu
queijoijo queijo
astroastro astro
a a

Domingo de Manhã

Desafio

Domingo é dia de feira. Logo de manhã muitas pessoas se deslocam para o polo de lazer da Parangaba, onde acontece uma feira, conhecida por ser a maior da cidade. Na feira da Parangaba você pode encontrar de tudo.

Todos os domingos, Bino faz compras na feira. Ele sempre marca com seu amigo Cino de se encontrarem no terminal de ônibus da Parangaba às 8h, para irem juntos comprar na feira. Porém, muitas vezes Bino acorda muito tarde e se atrasa para o encontro com seu amigo.

Sabendo que Bino leva de 30 a 60 minutos para chegar ao terminal. Diga o atraso máximo de Bino.

Entrada

A entrada consiste em múltiplos casos teste. Cada caso de tese contém uma única linha contendo um horário H (5:00 ≤ H ≤ 9:00) que Bino acordou. A entrada termina com final de arquivo (EOF).

Saída

Para cada caso de teste, imprima "Atraso maximo: X" (sem aspas), X indica o atraso maximo (em minutos) de Bino no encontro com Cino.

Exemplos de Entrada Exemplos de Saída
7:10 Atraso maximo: 10
5:00 Atraso maximo: 0

Área Direita

Desafio

Leia um caractere maiúsculo, que indica uma operação que deve ser realizada e uma matriz M[12][12]. Em seguida, calcule e mostre a soma ou a média considerando somente aqueles elementos que estão na área direita da matriz, conforme ilustrado abaixo (área verde).
image

Entrada

A primeira linha de entrada contem um único caractere Maiúsculo O ('S' ou 'M'), indicando a operação (Soma ou Média) que deverá ser realizada com os elementos da matriz. Seguem os 144 valores de ponto flutuante que compõem a matriz.

Saída

Imprima o resultado solicitado (a soma ou média), com 1 casa após o ponto decimal.

Exemplos de Entrada Exemplos de Saída
S 4799.5
155.4 29.9 157.7 56.4 81.9 202.5 217.0 151.5 154.0 72.2 193.1 247.7
133.4 83.8 192.5 142.9 240.1 151.3 230.0 42.7 155.8 114.2 134.6 217.4
235.4 276.4 113.0 111.3 105.7 151.4 85.7 296.0 77.1 140.5 242.4 131.5
274.6 82.8 67.8 26.3 113.4 37.1 291.4 76.9 291.1 285.4 289.1 216.1
254.6 290.8 134.1 104.1 21.5 288.3 237.9 167.1 182.9 250.0 259.8 109.7
110.0 29.1 278.1 116.6 202.0 71.7 219.3 101.9 275.3 65.6 127.9 68.8
279.6 196.3 27.8 206.7 156.7 183.7 85.8 174.6 12.9 90.1 221.5 103.5
74.5 112.4 136.8 90.6 220.0 6.8 242.0 160.2 48.5 137.6 251.3 226.3
39.1 293.3 295.3 12.4 289.6 76.0 160.4 60.8 286.3 41.7 209.4 7.0
158.1 248.9 269.9 186.7 204.6 263.7 288.0 205.1 153.1 69.7 47.5 113.8
6.2 37.8 233.8 113.3 178.0 132.7 193.7 140.6 88.7 256.1 89.0 290.0
295.8 268.4 283.0 74.3 178.1 272.3 16.2 144.5 67.6 202.5 134.1 258.7

Divisores

Desafio

Pense um número positivo n. Agora me diga um divisor A de n. Agora me dê um outro número B que não seja divisor de n. Agora um múltiplo C. E um não múltiplo D. O número que você pensou é...

Parece um truque de mágica, mas é matemática! Será que, conhecendo os números A, B, C e D, você consegue descobrir qual era o número original n? Note que pode existir mais de uma solução!

Neste problema, dados os valores de A, B, C e D, você deve escrever um programa que determine qual o menor número n que pode ter sido pensado ou concluir que não existe um valor possível.

Entrada

A entrada consiste de uma única linha que contém quatro números inteiros A, B, C e D, como descrito acima (1 ≤ A, B, C, D ≤ 109).

Saída

Seu programa deve produzir uma única linha. Caso exista pelo menos um número n para os quais A, B, C e D façam sentido, a linha deve conter o menor n possível. Caso contrário, a linha deve conter -1.

Exemplos de Entrada Exemplos de Saída
2 12 8 2 4
3 4 60 105 6

Divisores I

Desafio

Ler um número inteiro N e calcular todos os seus divisores.

Entrada

O arquivo de entrada contém um valor inteiro.

Saída

Escreva todos os divisores positivos de N, um valor por linha.

Exemplos de Entrada Exemplos de Saída
6 1
2
3
6

Encontre a maior substring

Desafio

Encontre a maior substring comum entre as duas strings informadas. A substring pode ser qualquer parte da string, inclusive ela toda. Se não houver subseqüência comum, a saída deve ser “0”. A comparação é case sensitive ('x' != 'X').

Entrada

A entrada contém vários casos de teste. Cada caso de teste é composto por duas linhas, cada uma contendo uma string. Ambas strings de entrada contém entre 1 e 50 caracteres ('A'-'Z','a'-'z' ou espaço ' '), inclusive, ou no mínimo uma letra ('A'-'Z','a'-'z').

Saída

O tamanho da maior subsequência comum entre as duas Strings.

Exemplos de Entrada Exemplos de Saída
abcdef 2
cdofhij 1
TWO 0
FOUR 7
abracadabra
open
Hey This java is hot
Java is a new paradigm

A Resposta de Theon

Desafio

Ramsay: "(...) você vence se conseguir adivinhar quem eu sou e por que estou torturando você."

Theon deve pensar rápido e adivinhar quem é seu algoz! Entretanto, Ramsay já decidiu o que ele irá fazer depois que Theon der sua resposta.

Theon pode dizer que seu algoz é alguma dentre N pessoas. Considere que as pessoas são numeradas de 1 a N. Se Theon responder que seu algoz é a pessoa i, Ramsay irá atingi-lo Ti vezes.

Sua tarefa é ajudar Theon a determinar qual deve ser sua resposta de forma a minimizar o número de vezes que ele será atingido.

Entrada

A primeira linha contém um inteiro N (1 ≤ N ≤ 100). A segunda linha contém N inteiros T1, T2, ..., TN (0 ≤ Ti ≤ 20).

Saída

Imprima uma linha contendo o número da pessoa que Theon deve dizer ser seu algoz. Se existe mais de uma resposta possível, imprima a menor.

Exemplos de Entrada Exemplos de Saída
3 2
8 0 7
Exemplos de Entrada Exemplos de Saída
2 1
1 1

Números Ímpares

Desafio

Leia um valor inteiro X (1 <= X <= 1000). Em seguida mostre os ímpares de 1 até X, um valor por linha, inclusive o X, se for o caso.

Entrada

O arquivo de entrada contém 1 valor inteiro qualquer.

Saída

Imprima todos os valores ímpares de 1 até X, inclusive X, se for o caso.

Exemplos de Entrada Exemplos de Saída
8 1
3
5
7

Multiplicação Simples

Desafio

Você receberá dois valores inteiros. Faça a leitura e em seguida calcule o produto entre estes dois valores. Atribua esta operação à variável PROD, mostrando esta de acordo com a mensagem de saída esperada (exemplo abaixo).

Entrada

A entrada contém 2 valores inteiros.

Saída

Exiba a variável PROD conforme exemplo abaixo, tendo obrigatoriamente um espaço em branco antes e depois da igualdade.

Exemplos de Entrada Exemplos de Saída
3 PROD = 27
9
Exemplos de Entrada Exemplos de Saída
-30 PROD = -300
10
Exemplos de Entrada Exemplos de Saída
0 PROD = 0
9

Análise de Números

Desafio

Você deve fazer a leitura de 5 valores inteiros. Em seguida mostre quantos valores informados são pares, quantos valores informados são ímpares, quantos valores informados são positivos e quantos valores informados são negativos.

Entrada

Você receberá 5 valores inteiros.

Saída

Exiba a mensagem conforme o exemplo de saída abaixo, sendo uma mensagem por linha e não esquecendo o final de linha após cada uma.

Exemplos de Entrada Exemplos de Saída
-5 3 valor(es) par(es)
0 2 valor(es) impar(es)
-3 1 valor(es) positivo(s)
-4 3 valor(es) negativo(s)
12

Conjuntos bons ou ruins?

Desafio

Nesse algoritmo você deverá descobrir se um conjunto de palavras é bom ou ruim. Por definição, um conjunto é bom quando nenhuma palavra desse conjunto é um prefixo de outra palavra. Caso contrário, é considerado um conjunto ruim.

Por exemplo, {dbc, dae, dbcde} é um conjunto ruim, pois dbc é um prefixo de dbcde. Quando duas palavras são idênticas, definimos como uma sendo prefixo da outra.

Entrada

A entrada contém vários casos de teste. A primeira linha de cada caso de teste terá um inteiro N (1 ≤ N ≤ 10⁵), que representa a quantidade de palavras no conjunto. Segue então N linhas, cada uma tendo uma palavra de no máximo 100 letras minúsculas. A entrada termina quando N = 0 e não deve ser processada.

Saída

Para cada caso de teste, você deverá imprimir "Conjunto Bom", ou "Conjunto Ruim", conforme explicado acima.

Exemplos de Entrada Exemplos de Saída
3 Conjunto Ruim
abc Conjunto Bom
dae
abcde
2
abc
def
0

Menor e Posição

Desafio

Desenvolva um código que leia um valor E. Este E será o tamanho de um vetor X[E]. A seguir, leia cada um dos valores de X, encontre o menor elemento deste vetor e a sua posição dentro do vetor, mostrando esta informação.

Entrada

A primeira linha de entrada contem um único inteiro E (1 < E < 1000), indicando o número de elementos que deverão ser lidos em seguida para o vetor X[E] de inteiros. A segunda linha contém cada um dos E valores, separados por um espaço.

Saída

A primeira linha apresenta a mensagem “Menor valor:” seguida de um espaço e do menor valor lido na entrada. A segunda linha apresenta a mensagem “Posicao:” seguido de um espaço e da posição do vetor na qual se encontra o menor valor lido, lembrando que o vetor inicia na posição zero.

Exemplos de Entrada Exemplos de Saída
10 PROD = 27
1 2 3 4 -5 6 7 8 9 10 Posicao: 4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.