Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, ajudar uma criança que está jogando um jogo onde o personagem pula sobre nuvens,mas ele gasta energia e existem algumas condições. Vejamos agora.
Jumping on the Clouds: Revisited -
Uma criança está jogando um jogo de salto nas nuvens. Neste jogo, existem nuvens numeradas sequencialmente que podem ser nuvens de trovoada ou cúmulos. O personagem deve pular de nuvem em nuvem até chegar ao início novamente.
Há uma série de nuvens e um nível de energia. O personagem parte e usa unidade de energia para dar um salto de tamanho para a nuvem. Se cair em uma nuvem de tempestade, , sua energia () diminui em unidades adicionais. O jogo termina quando o personagem pousa de volta na nuvem.
Dados os valores de , e a configuração das nuvens como uma matriz , determine o valor final de após o término do jogo.
Como você pode ver na descrição, a entrada do método esperado será um array de 1,0 e também um inteiro que é o tamanho do salto. Usando um exemplo pode tornar muito mais fácil de entender. vamos considerar que temos a seguinte entrada e encontrar o resultado esperado de acordo.
- int c[n]: O tipo de nuvem no caminho
- int k: O comprimento de cada pulo
Queremos retornar:
- int: A quantidade de energia restante.
Um pouco confuso? Vejamos um exemplo:
Function
--------
n = 8, k = 2
c = [0, 0, 1, 0, 0, 1, 1, 0]
O resultado desse input será: 92
Pode estar se perguntando: Por quê esse valor? Devemos lembrar que o valor de energia que começamos é 100, e k
representa o comprimento de pulos, além de n
ser o "número de casas" a se pular. Sendo assim, 100 -> 97 -> 96 -> 93 -> 92
Vejamos a criação do código:
function jumpingOnClouds(c, k) {
let e = 100;
let i = 0;
do {
if(c[i] == 1) e -= 2;
e--;
i = (i + k) % c.length;
} while(i !== 0)
return e;
}
A função tem como objetivo simular o jogo "Jumping on Clouds", onde o jogador salta em nuvens numeradas de 0 a n-1 e deve evitar as nuvens com valor 1.
A variável "e" é inicializada com 100, que representa a energia do jogador. A variável "i" é inicializada com 0, que representa a nuvem em que o jogador começa.
Em seguida, a função utiliza um "do-while" para simular o movimento do jogador. Dentro do loop, é verificado se o jogador está em uma nuvem com valor 1, se estiver, sua energia é reduzida em 2. Em seguida, a energia é reduzida em 1 para cada salto. A variável "i" é atualizada para a próxima nuvem que o jogador deve saltar, utilizando o operador módulo para garantir que o jogador não ultrapasse a última nuvem.
O loop continua até que o jogador retorne à nuvem inicial (i != 0). Por fim, a função retorna a energia restante do jogador após todos os saltos.
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)