Executando verificação de segurança...
Em resposta a [Não disponível]
1

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.

Carregando publicação patrocinada...