Uma solução ao problema pode ser:
function getStars(resultados) {
let stars = 0;
let streak = 0;
for (const result of resultados) {
if (result === "G") {
streak++;
if (streak === 3) {
stars++;
streak = 0;
}
} else {
streak = 0;
}
}
return stars;
}
const resultados1 = ["P", "G", "G", "P", "G", "G", "G", "P", "G", "P", "P", "P"];
console.log(getStars(resultados1)); // Output: 1
const resultados2 = ["P", "G", "G", "P", "G", "G", "G", "P", "G", "P", "P"];
console.log(getStars(resultados2)); // Output: 0
A função getStars recebe um array de resultados de testes e retorna a quantidade de estrelas que o competidor ganhou. Ela faz isso ao manter o registro da sequência de vitórias atual usando a variável streak. Se o resultado atual for uma vitória, ele incrementa a sequência. Se a sequência alcançar 3, ele incrementa a quantidade de estrelas e reinicia a sequência. Se o resultado atual for uma derrota, ele reinicia a sequência. Por fim, ele retorna a quantidade de estrelas.