No tutorial de hoje, vou ajudá-lo a entender como resolver mais alguns desafios que você encontrará no HackerRank, usando a linguagem TypeScript.
Desafio que abordaremos:
- Plus Minus
Plus Minus
O objetivo desse desafio, é que recebendo um array de números inteiros, calculemos as proporções entre a quantidade de items positivos, negativos e zeros do array. Devemos imprimir o valor desses cálculos em uma nova linha com 6 casas após o decimal. Você pode conferir o desafio neste link.
Por exemplo:
A entrada do array seria dessa forma:
[-4, 3, 9, 0, -4, 1];
Devemos retornar o cálculo desses valores dessa forma:
0.500000
0.333333
0.166667
Para resolver esse desafio, iremos utilizar a função plusMinus
. Começaremos definindo uma variável const
para guardar o valor total do array:
function plusMinus(arr: number[]): void) {
const totalElements = arr.length;
...
}
Após guardar o total de items do array, crie a variável count
para armazenar três contadores iniciando-os com zero: um para o número de items positivos, negativos e zeros.
function plusMinus(arr: number[]): void) {
const totalElements = arr.length;
let count = positives: 0, negatives: 0, zeroes: 0
...
}
Em seguida, usaremos o método .forEach()
para percorrer cada item do array. Para cada item do array, iremos verificar se o valor é positivo, negativo ou zero e incrementaremos o valor para a variável count
:
function plusMinus(arr: number[]): void) {
const totalElements = arr.length;
let count = { positives: 0, negatives: 0, zeroes: 0 };
arr.forEach(num => {
if (num > 0) count.positives++;
if (num < 0) count.negatives++;
if (num === 0) count.zeroes++;
});
...
}
Por fim, após o loop, iremos calcular as três relações entre a quantidade de items positivos, zeros e o tamanho total do array dividindo o contador pelo número total de items. O resultado é arredondado para seis casas decimais usando o método .toFixed()
, assim como foi solicitado no desafio. No final, imprimimos os valores totais de positivesToTotalRatio
, negativesToTotalRatio
e zeroesToTotalRatio
.
function plusMinus(arr: number[]): void) {
const totalElements = arr.length;
let count = { positives: 0, negatives: 0, zeroes: 0 };
arr.forEach((num) => {
if (num > 0) count.positives++;
if (num < 0) count.negatives++;
if (num === 0) count.zeroes++;
});
const positivesToTotalRatio = (count.positives / totalItems).toFixed(6);
const negativesToTotalRatio = (count.negatives / totalItems).toFixed(6);
const zeroesToTotalRatio = (count.zeroes / totalItems).toFixed(6);
console.log(
`${positivesToTotalRatio}\n${negativesToTotalRatio}\n${zeroesToTotalRatio}`
);
}
Obrigado por ler!
Espero que tenha gostado da resolução do desafio, até a próxima!
Top comments (0)