Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, vamos ajudar Manasa a achar um tesouro escondido no caminho final a uma trilha de pedras. Vejamos mais informações com a explicação e sua resolução.
Manasa and Stones -
Manasa está em uma caminhada com amigos. Ela encontra uma trilha de pedras com números nelas. Ela começa a seguir a trilha e percebe que quaisquer números de duas pedras consecutivas diferem em um dos dois valores. Diz a lenda que existe um tesouro no final da trilha. Se Manasa adivinhar o valor da última pedra, o tesouro será dela.
Exemplo
- n = 2
- a = 2
- b = 3
Ela encontra 2 pedras e suas diferenças são a = 2 ou b = 3. Sabemos que ela começa com uma pedra 0 não incluída em sua contagem. As permutações de diferenças para as duas pedras são [2,2], [2, 3], [3,2] ou [3, 3]. Olhando para cada cenário, as pedras podem ter [2, 4], [2, 5], [3, 5] ou [3, 6] nelas. A última pedra pode ter qualquer um dos 4, 5 ou 6 em sua face.
Calcule todos os números possíveis que podem ocorrer na última pedra dada uma pedra inicial com um 0, um número de pedras adicionais encontradas e as possíveis diferenças entre pedras consecutivas.
Vejamos o código a seguir:
function stones(n, a, b) {
// Write your code here
const result = new Set();
for (let i = 0; i < n; i++) {
const max = Math.max(a, b) * (n - 1 - i);
const min = Math.min(a, b) * i;
result.add(max + min);
}
return Array.from(result).sort((x, y) => x - y);
}
Começamos criando uma variável que terá como recebimento o Set() que irá guardar valores únicos de qualquer tipo. Logo em seguida criamos um laço for
onde o index irá adicionar 1, toda enquanto ele for menor que n
. Criamos a const max que irá pegar o valor máximo apresentado nos parâmetros a
e b
e multiplicar por n
-1 - o index do momento. Faremos uma const min que irá fazer o contrário mas irá apenar multiplicar pelo index. E por último adicionamos os valores descobertos na variável result
.
Finalmente retornamos um Array tendo o valor de result
.
O resultado será:
2 T = 2 (test cases)
3 n = 3 (test case 1)
1 a = 1
2 b = 2
4 n = 4 (test case 2)
10 a = 10
100 b = 100
Sample Output
2 3 4
30 120 210 300
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)